Bow Tie Kreative VIDEO Grammar

Reference

API reference

The whole corpus is served as JSON at https://video.bowtiekreative.com/v1 — no key, no rate card, CORS open. Read the rules, dimensions, schemas, chapters and the worked example; run the rule engine with POST /v1/evaluate; validate documents with POST /v1/validate.

This material is a specification and reference set with a reference rule engine. It is not an editing application, a rendering pipeline or a completed production, and the worked example is entirely fictional — it exists to demonstrate the method.

Endpoints

MethodPathSummary
GET /v1 This index
GET /v1/health Liveness and corpus counts
GET /v1/openapi.json OpenAPI 3.1 description of this API
GET /v1/manifest Package manifest and inventory
GET /v1/model The volumetric model: change levels, meta-variables, decision variables, operators
GET /v1/dimensions All 62 enumerated (989 states) and 38 continuous dimensions — filter by group or kind
GET /v1/dimensions/{id} One dimension with its full state list, e.g. shot_sizes
GET /v1/rules The 196 production rules — filter by category, type (hard/soft), min_priority or q
GET /v1/rules/{id} One production rule, in full, e.g. TXT-001
GET /v1/schemas The twelve JSON Schemas
GET /v1/schemas/{name} One schema, e.g. clip
GET /v1/example The fictional worked example — stage list
GET /v1/example/{stage} One example stage, e.g. clips or rule-evaluation
GET /v1/docs The 22 documentation chapters
GET /v1/docs/{slug} One chapter, as markdown
GET /v1/sources The primary source register
POST /v1/evaluate Run the rule engine on a submitted context
POST /v1/validate Validate a document against one of the packaged schemas

The machine-readable description lives at /v1/openapi.json (OpenAPI 3.1). Agent onboarding: /llms.txt.

Run the rule engine

Submit a context object; rule conditions read dotted paths from it. The engine evaluates all 196 rules in priority order — hard before soft — applies the actions of every match, and returns the accumulated state plus a trace.

curl -s https://video.bowtiekreative.com/v1/evaluate \
  -H 'content-type: application/json' \
  -d '{
    "context": {
      "transcript": {"unresolved_pronoun": true},
      "story": {"has_opening_promise": true}
    }
  }'

The response includes state (flags, proposals, requirements, human reviews, block status), hard_matched and soft_matched rule ids, and a trace with each match's priority, rationale and actions. Add "domains": ["transcript"] to evaluate one domain, or "matched_only": false for the full audit trace over every rule.

Validate a document

Name one of the 12 packaged schemas and submit a document:

curl -s https://video.bowtiekreative.com/v1/validate \
  -H 'content-type: application/json' \
  -d '{"schema": "clip", "document": {"clip_id": "clip_001"}}'

Validation is structural: required fields, types, enumerations, patterns, ranges and cross-file references. It does not run the rule engine or judge editorial quality.

Caching & terms

  • GET responses are cacheable for five minutes with a day of stale-while-revalidate.
  • POST endpoints are never cached.
  • The corpus is versioned; counts and content only change with a new release.