familylaw.obligation (per case): status_quo_order / parenting_course / mediation,
state pending/completed/waived, complete + waive actions.
familylaw.case (_inherit):
- create() seeds AO 14-13 obligations for Miami-Dade matters (idempotent,
_seed_miamidade_obligations): Status Quo Order on dissolutions; Parenting Course on
children matters (dissolution_children/paternity/parenting_modification); Mediation
on all Miami-Dade matters. Non-Miami-Dade seeds nothing.
- action_set_hearing() now guards course-before-judgment: blocked while a required
parenting course is pending (children matters); allowed once completed.
Obligations tab on the case form. ACL added.
Tests (familylaw_step13): seeding by case type; no-children excludes course;
non-Miami-Dade no seed; idempotent; guard blocks/passes directly and across the full
lifecycle path; no-children not blocked; complete/waive.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>