Data Specification
Details about observers, their backgrounds, and credibility factors.
| Field | Type | Required | Description |
|---|
witnessCount | number | Yes | Total number of witnesses |
witnessCategories | WitnessCategory[] | Yes | Categories of witnesses represented |
namedWitnessCount | number | No | Number of named/identified witnesses |
hasMilitaryWitnesses | boolean | No | Has military witnesses |
hasPilotWitnesses | boolean | No | Has pilot witnesses |
hasLawEnforcementWitnesses | boolean | No | Has law enforcement witnesses |
hasScientificWitnesses | boolean | No | Has scientific witnesses |
multipleIndependentGroups | boolean | No | Multiple independent witness groups |
independentGroupCount | number | No | Number of independent groups |
witnesses | Witness[] | No | Individual witness details |
witnessNotes | string | No | General witness notes |
Individual witness information.
| Field | Type | Required | Description |
|---|
witnessId | string | Yes | Anonymous witness identifier |
category | WitnessCategory | Yes | Witness category |
role | string | No | Specific role/profession |
organization | string | No | Organization (if releasable) |
experienceYears | number | No | Years of relevant experience |
credibility | WitnessCredibility | No | Credibility factors |
isNamed | boolean | No | Whether witness name is public |
publicName | string | No | Public name (if releasable) |
statementSummary | string | No | Witness statement summary |
interviewAvailable | boolean | No | Witness has given interview |
writtenReportAvailable | boolean | No | Witness has written report |
interface WitnessData {
witnessCount: number;
namedWitnessCount?: number;
witnessCategories: WitnessCategory[];
hasMilitaryWitnesses?: boolean;
hasPilotWitnesses?: boolean;
hasLawEnforcementWitnesses?: boolean;
hasScientificWitnesses?: boolean;
multipleIndependentGroups?: boolean;
independentGroupCount?: number;
witnesses?: Witness[];
witnessNotes?: string;
}
interface Witness {
witnessId: string;
category: WitnessCategory;
role?: string;
organization?: string;
experienceYears?: number;
credibility?: WitnessCredibility;
isNamed?: boolean;
publicName?: string;
statementSummary?: string;
interviewAvailable?: boolean;
writtenReportAvailable?: boolean;
}
interface WitnessCredibility {
isProfessionalObserver?: boolean;
hasAviationExperience?: boolean;
hasMilitaryExperience?: boolean;
hasScientificBackground?: boolean;
hasPriorUAPKnowledge?: boolean;
wasSkepticPrior?: boolean;
underOathTestimony?: boolean;
polygraphAdministered?: boolean;
polygraphPassed?: boolean;
consistentTestimony?: boolean;
willingToBeIdentified?: boolean;
credibilityNotes?: string;
}
| Value | Description |
|---|
military_pilot | Military pilot |
military_aircrew | Military aircrew member |
military_ground | Military ground personnel |
military_naval | Naval personnel |
military_radar_operator | Military radar operator |
military_other | Military (other) |
| Value | Description |
|---|
commercial_pilot | Commercial airline pilot |
commercial_aircrew | Commercial aircrew |
private_pilot | Private pilot |
air_traffic_controller | ATC personnel |
aviation_other | Aviation (other) |
| Value | Description |
|---|
law_enforcement | Police/sheriff |
government_official | Government official |
intelligence_officer | Intelligence personnel |
| Value | Description |
|---|
scientist | Scientist |
astronomer | Astronomer |
engineer | Engineer |
meteorologist | Meteorologist |
medical_professional | Medical professional |
| Value | Description |
|---|
maritime | Maritime personnel |
civilian | General civilian |
anonymous | Anonymous reporter |
unknown | Unknown category |
Credibility factors are now captured per-witness in an interface:
| Field | Type | Description |
|---|
isProfessionalObserver | boolean | Trained in observation (pilot, ATC, military) |
hasAviationExperience | boolean | Has aviation experience |
hasMilitaryExperience | boolean | Has military experience |
hasScientificBackground | boolean | Has scientific background |
hasPriorUAPKnowledge | boolean | Has prior UAP knowledge |
wasSkepticPrior | boolean | Skeptic prior to sighting |
underOathTestimony | boolean | Under oath testimony available |
polygraphAdministered | boolean | Polygraph administered |
polygraphPassed | boolean | Polygraph passed |
consistentTestimony | boolean | Consistent testimony over time |
willingToBeIdentified | boolean | Willing to be identified |
credibilityNotes | string | Additional credibility notes |
{
"witnesses": {
"witnessCount": 4,
"namedWitnessCount": 2,
"witnessCategories": [
"commercial_pilot",
"commercial_pilot",
"air_traffic_controller",
"commercial_aircrew"
],
"hasPilotWitnesses": true,
"multipleIndependentGroups": true,
"independentGroupCount": 2,
"witnesses": [
{
"witnessId": "w-001",
"category": "commercial_pilot",
"role": "Captain",
"organization": "United Airlines",
"experienceYears": 22,
"credibility": {
"isProfessionalObserver": true,
"hasAviationExperience": true,
"consistentTestimony": true,
"willingToBeIdentified": true
},
"isNamed": true,
"publicName": "Captain David Fravor",
"interviewAvailable": true,
"writtenReportAvailable": true
}
],
"witnessNotes": "All witnesses observed the same object independently"
}
}
- Count all witnesses - Include everyone who observed
- Note professional backgrounds - Use specific category values
- Document independence - Use
multipleIndependentGroups and independentGroupCount
- Record credibility per witness - Use
WitnessCredibility interface
- Protect privacy - Use anonymous
witnessId values, only set isNamed/publicName when appropriate