# Field Type Reference Table This comprehensive reference provides detailed specifications for all {{FAIMS}} field types, supporting informed selection for digital data collection {{notebook}} design. We present technical capabilities, validation options, and platform-specific considerations for each field type within the Designer interface. ## Text and Identifier Fields | Field Type | Purpose & Description | Typical Examples | Technical Specifications | Validation Capabilities | Platform Considerations | |------------|----------------------|------------------|------------------------|------------------------|------------------------| | **Single-line Text** | Brief textual entries where neither controlled vocabularies nor auto-generation are appropriate | "North wall", "Sandy matrix", "Excavator notes" | Character limit: ~255 practical maximum
Input types: text, email, url
Returns: String | Pattern matching via regex
Length constraints
Required field option | Universal compatibility
Predictive text on mobile | | **Multi-line Text** | Extended descriptive content requiring paragraph formatting | Context descriptions, interpretation notes, detailed observations | No practical character limit
Adjustable row height
Returns: String | Length validation
Required field option
No pattern matching | Touch keyboard challenges on mobile
Consider voice-to-text | | **Email** | Validated email address collection | "projectlead@university.edu", "lab@institution.org" | Standard email validation
Returns: String | RFC 5322 compliant validation
Required field option | Keyboard switches to email mode on mobile | | **Address** | Structured physical address components | Site locations, institutional addresses, property details | Multiple sub-fields (street, city, state, postcode)
Returns: Structured object | Component-level validation
Postcode format checking | Auto-complete varies by platform | | **Templated String** | Auto-generated identifiers combining multiple field values | "SITE1-2024-CTX045", `{{project}}-{{date}}-{{counter}}` | Mustache.js templating
Supports conditionals
Returns: String
Read-only display | Not user-editable
Updates dynamically | Essential for human-readable IDs
No parent field access | | **QR/Barcode Scanner** | Camera-based code capture for pre-printed labels | Specimen barcodes, equipment tags, location markers | Supports multiple formats (QR, Code128, etc.)
Returns: String | Format validation possible
Pattern matching | **Mobile applications only**
Not available on web | ## Numeric Fields | Field Type | Purpose & Description | Typical Examples | Technical Specifications | Validation Capabilities | Platform Considerations | |------------|----------------------|------------------|------------------------|------------------------|------------------------| | **Number Field** | Basic numeric entry without constraints | Artefact counts, simple measurements | Integer or decimal
JavaScript number type
Returns: Number | Type checking only
No range validation | Period (.) required for decimals
No locale formatting | | **Controlled Number** | Numeric values with enforced boundaries | pH (0–14), percentage (0–100), depth (0–500cm) | Min/max enforcement
Step increments
Default values
Returns: Number | Range validation
Precision control
Required field option | Supports sticky behaviour
Spinner controls optional | | **Auto-incrementing** | Sequential identifier generation | Context numbers (001, 002...), Sample IDs | Configurable padding
Starting value
Returns: String | Uniqueness guaranteed
No user override | Cannot reset mid-project
Team coordination critical | ## Date and Time Fields | Field Type | Purpose & Description | Typical Examples | Technical Specifications | Validation Capabilities | Platform Considerations | |------------|----------------------|------------------|------------------------|------------------------|------------------------| | **Date Picker** | Calendar date selection without time | Excavation date, sample collection date | ISO 8601 format
Returns: Date string | Min/max date ranges
Required field option | Native date pickers on mobile
Calendar widget on desktop | | **DateTime Picker** | Combined date and time selection | Precise event timing, scheduled observations | ISO 8601 with time
Returns: DateTime string | Date and time ranges
Required field option | Platform-specific interfaces | | **DateTime Now** | One-tap current timestamp capture | Record creation time, observation moment | Automatic capture
User-triggered
Returns: DateTime string | Always valid
Can be required | Device clock dependency
Timezone considerations | | **Month Picker** | Year and month selection only | Seasonal data, approximate dates | YYYY-MM format
Returns: String | Year range limits
Required field option | Simplified interface
No day selection | ## Selection Fields | Field Type | Purpose & Description | Typical Examples | Technical Specifications | Validation Capabilities | Platform Considerations | |------------|----------------------|------------------|------------------------|------------------------|------------------------| | **Checkbox** | Binary true/false decisions | "Sample collected?", "Photography complete?" | Returns: Boolean
Default: false | Required completion
Can control logic | Large touch target on mobile | | **Radio Buttons** | Single selection from 2–7 visible options | Preservation state, weather conditions | All options visible
Returns: String value | Required selection
Option validation | Excellent mobile usability
Space consuming | | **Dropdown (Select)** | Single selection from many options | Species list (50+ items), material types | Conserves screen space
Returns: String value | Required selection
Dependent on vocabulary | Scrolling challenges on mobile | | **Multi-select** | Multiple simultaneous selections | Construction materials, observed behaviours | Checkbox list
Returns: Array of strings | Min/max selections
Required field option | Touch selection challenging
Consider chip display | | **Hierarchical Dropdown** | Nested categorical selection | Taxonomies, period → phase → subphase | Tree navigation
Returns: Full path or leaf | Depth validation
Required at any level | Complex navigation on mobile
Consider search function | ## Spatial Fields | Field Type | Purpose & Description | Typical Examples | Technical Specifications | Validation Capabilities | Platform Considerations | |------------|----------------------|------------------|------------------------|------------------------|------------------------| | **Take GPS Point** | Single coordinate capture | Find spots, sample locations, photo positions | Returns: GeoJSON point
Includes metadata (accuracy, altitude) | Accuracy thresholds
Required field option | Mobile GPS superior
Browser geolocation limited | | **Map Drawing** | Visual feature creation on base maps | Site boundaries, excavation areas, transects | Points, lines, polygons
Returns: GeoJSON
Multiple features | Geometry validation
Area/length constraints | **Requires internet for base maps**
Touch precision varies | ## Media Fields | Field Type | Purpose & Description | Typical Examples | Technical Specifications | Validation Capabilities | Platform Considerations | |------------|----------------------|------------------|------------------------|------------------------|------------------------| | **Take Photo** | Camera capture or gallery selection | Context photos, artefact images, working shots | JPEG/PNG
EXIF preserved
Returns: File reference | File size limits
Required field option | Compression settings
Storage considerations | | **File Upload** | Arbitrary file attachment | PDFs, spreadsheets, audio, video | Any file type
No size limits (practical)
Returns: File reference | Type restrictions possible
Required field option | Upload time considerations
Bandwidth dependent | ## Relationship Fields | Field Type | Purpose & Description | Typical Examples | Technical Specifications | Validation Capabilities | Platform Considerations | |------------|----------------------|------------------|------------------------|------------------------|------------------------| | **Related Records** | Inter-record connections | Stratigraphic relationships, sample → context links | Parent-child or peer
Vocabulary pairs
Returns: Relationship array | Required relationships
Cardinality limits | Performance degrades >50 relationships
Mobile interface limited | ## Display Fields | Field Type | Purpose & Description | Typical Examples | Technical Specifications | Validation Capabilities | Platform Considerations | |------------|----------------------|------------------|------------------------|------------------------|------------------------| | **Rich Text** | Formatted instructional content | Warnings, procedures, contextual help | Markdown support
Display only
No data storage | Not applicable | Responsive rendering
Image embedding supported | ## Critical Implementation Considerations ### Human-Readable Identifiers (HRIDs) Whilst technically optional, we strongly recommend implementing HRIDs using Templated String fields for every form. Without HRIDs, the system defaults to opaque UUIDs (e.g., "rec-5f8a9b3c"), substantially complicating data management, export interpretation, and team communication. Configure the `hridField` property in your viewset to specify which Templated String field serves as the identifier. ### Conditional Logic Architecture Fields capable of controlling logic (marked in specifications) can trigger visibility conditions through standardised operators (equal, not-equal, greater-than, less-than). Complex conditions utilise AND/OR combinations. Note that controller fields require the `logic_select` property or inclusion in `conditional_sources` for optimal performance. ### Platform-Specific Limitations Critical platform disparities require careful consideration: - QR/Barcode scanning functions exclusively on mobile applications - Map fields require internet connectivity for initial tile loading - GPS accuracy varies significantly between mobile devices and browsers - Touch interfaces present challenges for precise selection and text entry ### Performance Boundaries Documented performance thresholds inform design decisions: - Relationship fields: Noticeable degradation beyond 50 relationships, unusable beyond 200 - Long option lists: Consider hierarchical organisation beyond 20 items - Media synchronisation: Device-specific download toggles essential for photo-intensive {{notebooks}} - Complex conditional logic: Multiple controller fields may impact form responsiveness ### Validation Limitations Current validation architecture exhibits specific constraints: - No cross-field validation (cannot compare Field A to Field B) - No custom validation functions for project-specific rules - No mathematical operations between fields - No prevention of logical contradictions in relationships - Validation occurs client-side with limited server verification ### Export Considerations Each entity type exports as a separate CSV file with relationships preserved through identifier columns. The export format maintains relationship semantics (e.g., "cuts/CTX-042;fills/CTX-043") but requires manual reconstruction for hierarchical analysis. Design vocabularies and identifiers with post-processing requirements in mind.