OSF import: Scenes and Lines #27

Closed
opened 2026-10-07 07:34:42 +00:00 by crowmaki · 0 comments
Owner

Parent

#24

What to build

A filmmaker can import an OSF 4.x script (the urn:drafter:1 dialect) and read it in the app as Scenes and Lines. This ticket covers the script structure. Characters, cue details and Locations come in the next two tickets. See User Stories 14–20 and 31–35, and the "OSF import" spec section (#2).

Acceptance criteria

  • Only OSF 4.x is accepted; custom styles resolve through basestyle; only scene_time_separator is read; <lists>, <styles>, revision colours and empty paragraphs are ignored; inline formatting is stripped and soft breaks are kept
  • Each action paragraph and each whole dialogue block becomes one Line with an immutable position; transitions and shot directions become read-only Lines
  • Scenes keep d:id as a unique column; missing or duplicate d:ids get new IDs with a warning; Lines get stable opaque IDs
  • Locked scene numbers (such as 12A) are used as written; others are numbered in script order and frozen at import
  • Omitted Scenes stay as placeholders with their number and are hidden from production views
  • Page numbers are stored as text per Line and Scene page ranges are derived from them
  • The title page fills the Project's title and author; notes and synopses are kept as read-only text
  • Import writes straight into the Project, reports progress over a channel without freezing the UI, and ends with a summary of counts, warnings and flagged items
  • A read-only script view shows Scenes and Lines
  • Tests import the owner's sample script and small crafted edge cases through ProjectSession

Blocked by

## Parent #24 ## What to build A filmmaker can import an OSF 4.x script (the `urn:drafter:1` dialect) and read it in the app as Scenes and Lines. This ticket covers the script structure. Characters, cue details and Locations come in the next two tickets. See User Stories 14–20 and 31–35, and the "OSF import" spec section (#2). ## Acceptance criteria - [ ] Only OSF 4.x is accepted; custom styles resolve through `basestyle`; only `scene_time_separator` is read; `<lists>`, `<styles>`, revision colours and empty paragraphs are ignored; inline formatting is stripped and soft breaks are kept - [ ] Each action paragraph and each whole dialogue block becomes one Line with an immutable position; transitions and shot directions become read-only Lines - [ ] Scenes keep `d:id` as a unique column; missing or duplicate `d:id`s get new IDs with a warning; Lines get stable opaque IDs - [ ] Locked scene numbers (such as `12A`) are used as written; others are numbered in script order and frozen at import - [ ] Omitted Scenes stay as placeholders with their number and are hidden from production views - [ ] Page numbers are stored as text per Line and Scene page ranges are derived from them - [ ] The title page fills the Project's title and author; notes and synopses are kept as read-only text - [ ] Import writes straight into the Project, reports progress over a channel without freezing the UI, and ends with a summary of counts, warnings and flagged items - [ ] A read-only script view shows Scenes and Lines - [ ] Tests import the owner's sample script and small crafted edge cases through `ProjectSession` ## Blocked by - #25
Sign in to join this conversation.
No description provided.