Reuse a character across stories
A reader card gives Rowan a role inside one story. A separately registered storyorbit.character/1 character holds an immutable character revision that can appear across stories. Casting connects the two. You do not need it to complete the nine-lesson greenhouse story.
A character document has protocol, a UUID character_id, positive revision, default_language, localizations, relationship stages, assets and portrait. Its supported localization keys are en and zh (not the docs route zh-cn). Each localization supplies name, introduction, greeting, persona and voice. The initial relationship stage has no advancement requirements. A still portrait uses an image. Creator-authored APNG idle, speaking and reaction clips can be shared explicitly with VN sprite performance bindings; existing portrait MP4s remain supported in chat. Character relationship stages remain separate from story state, and casting does not grant access to hidden story art.
A casting recipe
Section titled “A casting recipe”After registering an authorized character revision through the host’s character workflow, add a casting to a 0.4 or 0.5 pack. The following is a fragment, not a complete pack; replace the illustrative UUID and revision with the registered identity. Keep Rowan’s actor reader card in the pack.
{ "id": "rowan_greenhouse", "actor_id": "rowan", "character_id": "00000000-0000-4000-8000-000000000001", "character_revision": 1, "entry_ids": ["arrival"], "when": { "op": "literal", "value": true }, "knowledge": [{ "id": "first_visit", "text": "The visitor arrived before the greenhouse closed.", "when": { "op": "literal", "value": true } }], "deeds": [{ "id": "shared_care", "when": { "op": "gte", "path": "/trust", "value": 2 } }]}Put it inside character_castings. Knowledge and deeds are gated by public state; do not put unrevealed secrets into always-visible knowledge. player_actor_id, when used, must refer to a distinct in-scope actor card. The UUID above is an example and does not name an available registered character. Local structure checks cannot confirm ownership, availability or permissions.
Use the 0.4 casting reference for every field and nested type, or 0.5 for a VN pack. Validate semantics with the host, then privately test the intended relationship/deed behavior. Keep the character revision pinned; updating a character does not silently update every story that cast it.