Vow::Exportable::Marked
Consumer-driven dispatch registration, for a downstream framework that has
its OWN export annotation (Vow knows nothing about it). The framework
includes this and calls vow_register_marked(registry, MyAnnotation) from
one of its own instance methods. Because the macro expands in the
consumer's class context (@type is that class), Vow registers every
method carrying marker with the exact decode → invoke → JSON-encode
callback it generates for @[Vow::Export] — so the consumer reuses Vow's
dispatch instead of reimplementing it, while keeping its own annotation,
ids, and any sidecar metadata (async scheduling, routing, …) on the side.
The wire id is <ClassPath with :: as .>.<method camelCased> and each wire
key is the camelCased parameter name — identical to @[Vow::Export]. A
leading Vow::Context (or subclass) parameter opts the method into the
per-call context exactly as it does under @[Vow::Export]. Arg defaults are
honored (an omitted optional key falls back to the signature default).
This is intentionally narrower than @[Vow::Export]: it does not read the
marker's options (the marker is the consumer's own annotation, with its own
fields), so there is no name:/skip:/opts handling — the consumer layers
any such concern on top.