← Receivers

media:films

media family

chatmcp

The films the site plays — the key ad, the told story, the playbook, the Hook film, the home film and each of its fifteen scenes, the Hook workshop — each with its poster, the FilmPlayer props that play it, the bgEffect keys that put it behind a block, and this group's stars and tags. Filter by `tag` or `starred`. To place one: pages:add-block {component:"FilmPlayer", props}; to put one behind a block: set its bgEffect to a `backgrounds` key. To star or tag: entity:tag {id:"film:<id>", add:["star"|tag]}. With a tag, `reel` is that tag's home-film scenes played as one film — a video made from a tag, placed the same way.

Effect
ask
Awaits an outcome — the call returns the response below.
Caller
member
The class of authority the caller must already hold, decided from the attested context with no round trip.
Cost
free
What one call costs, so you can budget before acting.
Reversible
yes
The effect can be undone by a later call.
Idempotent
yes
Safe to retry as-is.

Send it with your agent

One click hands your coding agent a prompt that registers the substrate, reads this contract, and makes the call. Launch opens the app; the others copy the prompt.

Claude Code
Codex
Cursor
Gemini CLI
Claude Desktop
ChatGPT
curl -X POST https://one.ie/api/ask/media:films \
  -H "Authorization: Bearer $ONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data": {}}'

The key is never in a link. npx -y @oneie/cli login writes it to ~/.config/oneie/key on your machine.

Request

Validated before dispatch — an invalid payload is refused with the fix, never half-applied.

  • workspace string optional Group slug whose stars and tags to read. Omit for your own. Honoured only if you may read it.
  • tag string optional Only films carrying this tag in this group, e.g. "hero" or "home". `star` is the starred ones.
  • starred boolean optional true = only starred films (the same as tag:"star").
  • kind film | scene optional film = a whole film; scene = one scene of the home film, played on its own.

Response

What comes back from the call.

  • ok boolean
  • workspace string
  • items object[]
  • total number Items in this answer, after filtering. The catalog is small and never paged — this is exact.
  • tags object Every tag this group has put on any film, with how many films carry it — the filter list.
  • reel object With `tag` or `starred`: the home-film scenes that carry it, as ONE film played back to back. ABSENT when fewer than two scenes carry it. Whole films in the tag are not in the reel (a reel is windows on one master).
  • error string

Traffic

Every call to media:films, counted where it is dispatched — over HTTP or in-process alike. Aggregate only — no actor, no payload, no workspace.

Counting…

Wiring

Every place in the open source that names media:films, and the file that answers it. Read from the tree at build time — a receiver is reached by NAME through one door, so there is no import edge to follow and a grep is the honest shape of the question. Structure, not volume — the count is in Traffic above.

Called from

UI 2
  • one.ie/web/src/components/film/FilmLibrary.tsx:14
  • one.ie/web/src/components/puck/BgEffectField.tsx:40
API route 2
  • one.ie/web/src/lib/film/use-film-tags.ts:34
  • one.ie/web/src/lib/receiver-index.generated.ts:226
→

Answered by

media:films one.ie/web/src/lib/resolvers/media.ts:236 Dispatched through POST /api/ask/media:films, after the envelope validates the payload.

media family · 3 more

JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspace": {
      "description": "Group slug whose stars and tags to read. Omit for your own. Honoured only if you may read it.",
      "type": "string"
    },
    "tag": {
      "description": "Only films carrying this tag in this group, e.g. \"hero\" or \"home\". `star` is the starred ones.",
      "type": "string"
    },
    "starred": {
      "description": "true = only starred films (the same as tag:\"star\").",
      "type": "boolean"
    },
    "kind": {
      "description": "film = a whole film; scene = one scene of the home film, played on its own.",
      "type": "string",
      "enum": [
        "film",
        "scene"
      ]
    }
  }
}
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "workspace": {
      "type": "string"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Catalog id; its stars and tags live under entity id `film:<id>`."
          },
          "name": {
            "type": "string"
          },
          "desc": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "film",
              "scene"
            ]
          },
          "parent": {
            "description": "For a scene, the film it belongs to.",
            "type": "string"
          },
          "poster": {
            "type": "string",
            "description": "Site path of the poster JPEG."
          },
          "play": {
            "type": "string",
            "description": "Site path that plays it on its own page — shareable."
          },
          "component": {
            "type": "string",
            "const": "FilmPlayer",
            "description": "The Puck block that places it."
          },
          "props": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "The FilmPlayer props — pass verbatim to pages:add-block."
          },
          "shapes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Aspect values the film plays in: 1x1 · 4x5 · 9x16 · 16x9."
          },
          "backgrounds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "bgEffect keys that put this film behind any block. Empty = not offered as a background."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "This group's tags on it, `star` included."
          },
          "starred": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "desc",
          "kind",
          "poster",
          "play",
          "component",
          "props",
          "shapes",
          "backgrounds",
          "tags",
          "starred"
        ]
      }
    },
    "total": {
      "description": "Items in this answer, after filtering. The catalog is small and never paged — this is exact.",
      "type": "number"
    },
    "tags": {
      "description": "Every tag this group has put on any film, with how many films carry it — the filter list.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number"
      }
    },
    "reel": {
      "description": "With `tag` or `starred`: the home-film scenes that carry it, as ONE film played back to back. ABSENT when fewer than two scenes carry it. Whole films in the tag are not in the reel (a reel is windows on one master).",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "scenes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Home-film scene keys, in film order."
        },
        "duration": {
          "type": "number",
          "description": "Seconds — the windows added up."
        },
        "play": {
          "type": "string",
          "description": "Site path that plays the reel on its own page."
        },
        "component": {
          "type": "string",
          "const": "FilmPlayer"
        },
        "props": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {},
          "description": "Pass verbatim to pages:add-block — `scenes` is the reel."
        }
      },
      "required": [
        "name",
        "scenes",
        "duration",
        "play",
        "component",
        "props"
      ]
    },
    "error": {
      "type": "string"
    }
  },
  "required": [
    "ok"
  ]
}