SourceResolution:
    | { kind: "unresolved" }
    | { kind: "resolved"; schema: Schema }
    | { kind: "failed"; message: string }

What resolving a source gave: nothing yet, its schema, or the error to show