stateDiagram-v2
    [*] --> DRAFT: Create Request

    DRAFT --> SUBMITTED: Submit for<br/>Review
    DRAFT --> [*]: Abandon

    SUBMITTED --> IN_REVIEW: Route to<br/>Dept Approvers
    SUBMITTED --> [*]: Withdraw

    IN_REVIEW --> APPROVED: All Depts<br/>Approve
    IN_REVIEW --> REJECTED: Any Dept<br/>Rejects
    IN_REVIEW --> PENDING_RESUBMISSION: Request<br/>Changes

    PENDING_RESUBMISSION --> SUBMITTED: Resubmit with<br/>Changes
    PENDING_RESUBMISSION --> [*]: Withdraw

    APPROVED --> REVOKED: License<br/>Revocation
    APPROVED --> [*]: Expired

    REJECTED --> DRAFT: Appeal or<br/>Reapply
    REJECTED --> [*]: Withdrawn

    REVOKED --> [*]: End

    note right of DRAFT
        Local Draft
        Applicant can edit
        No blockchain record
    end note

    note right of SUBMITTED
        Submitted to System
        Hash recorded on chain
        Locked from editing
    end note

    note right of IN_REVIEW
        Multi-Dept Approval
        Parallel workflows
        Can be sequential
    end note

    note right of PENDING_RESUBMISSION
        Waiting for changes
        Applicant notified
        Time limited window
    end note

    note right of APPROVED
        License Granted
        ERC-721 NFT minted
        Verifiable on chain
    end note

    note right of REJECTED
        Request Denied
        Reason recorded
        Can appeal (future)
    end note

    note right of REVOKED
        License Cancelled
        NFT burned
        Audit trail kept
    end note
