{"openapi":"3.1.0","info":{"title":"GeneLoop Bio‑API","description":"GeneLoop Bio‑API","version":"0.2.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/cloning/plan-restriction":{"post":{"tags":["cloning"],"summary":"Plan restriction cloning strategies","description":"Plans restriction cloning strategies (Levels 1–3).\n\nCoordinate semantics: Requests use 1-based positions for all outward coordinates (e.g., annotations, manual_insertion_site). The backend converts to 0-based internally for analysis, and returns 1-based positions in responses.","operationId":"plan_restriction_cloning_plan_restriction_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnhancedRestrictionPlanRequest","examples":{"L3_single_enzyme":{"summary":"Level 3 single-enzyme cloning","value":{"vector":{"sequence":"GCTACCGGACTCAGATCTCGAGCTCAAGCTTCGAATTCTGCAGTCGACGGTACCGCGGGCCCGGGATCCACCGGTCGCCACCATG","name":"pUC-like","circular":true},"insert":{"type":"sequence","sequence":{"sequence":"AAAGAATTCAAA"}},"constraints":{"require_directional":false,"max_levels":3},"context":{"methylation":{"dam":false,"dcm":false,"cpg":false}},"options":{"strategy_levels":[3],"manual_insertion_site":{"start":1,"end":85}}}},"L2_sticky_blunt":{"summary":"Level 2 sticky+blunt cloning","value":{"vector":{"sequence":"GCTACCGGACTCAGATCTCGAGCTCAAGCTTCGAATTCTGCAGTCGACGGTACCGCGGGCCCGGGATCCACCGGTCGCCACCATG","name":"pUC-like","circular":true},"insert":{"type":"sequence","sequence":{"sequence":"AAAGAATTCAAACCCGGGAAA"}},"constraints":{"require_directional":false,"max_levels":3,"preferred_enzymes":["EcoRI","SmaI"]},"context":{"methylation":{"dam":false,"dcm":false,"cpg":false},"lab_context":{"inventory_enzymes":["EcoRI","SmaI"]}},"options":{"strategy_levels":[2],"manual_insertion_site":{"start":1,"end":85}}}}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnhancedRestrictionPlanResult"},"examples":{"L3_success":{"summary":"Level 3 single-enzyme example","value":{"analysis":{"vector_summary":{"length":85,"circular":true,"mcs_regions":[{"start":1,"end":85}],"restriction_map":[],"warnings":[]},"insert_summary":{"length":12,"source":"sequence","warnings":[]}},"strategies":[{"level":3,"name":"EcoRI single enzyme cloning","success_probability":0.65,"complexity_score":2,"enzymes":[{"name":"EcoRI","recognition_sequence":"GAATTC","cut_site":"G^AATTC","overhang_type":"3_prime_overhang","overhang_sequence":"AATT"}],"compatibility":{"shared_buffer":true,"sequential_digest_recommended":false},"conflicts":{"insert_internal_cuts":[],"vector_backbone_cuts":[],"methylation_blocks":[]},"warnings":["Screen orientation by colony PCR"],"protocol":{"reagents":[],"steps":[],"verification":{},"notes":[]}}],"confidence":0.7,"output_validation":{"level_explanation":{"final_levels":[3],"summary":"Level 3 strategy produced"},"diagnostics":{"post":{"final_strategies_count":1,"final_levels":[3]}}}}}}}}},"422":{"description":"Domain or validation error","content":{"application/json":{"examples":{"RCP_NO_VALID_STRATEGIES":{"summary":"No valid strategies","value":{"error":{"code":"RCP_NO_VALID_STRATEGIES","message":"No valid restriction cloning strategies could be generated for this payload","details":{"candidate_sets":{"overlap":[]}}},"request_id":"00000000-0000-0000-0000-000000000000"}},"VALIDATION_ERROR":{"summary":"Input validation error","value":{"error":{"code":"validation_error","message":"Request validation error","details":[{"loc":["body","vector","sequence"],"msg":"Field required","type":"value_error.missing"}]},"request_id":"00000000-0000-0000-0000-000000000000"}}},"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/auth/guest-token":{"post":{"summary":"Create Guest Token","operationId":"create_guest_token_auth_guest_token_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GuestTokenRequest"},{"type":"null"}],"title":"Guest Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestTokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/auth/status":{"get":{"summary":"Auth Status","operationId":"auth_status_auth_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthStatusResponse"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/auth/me":{"get":{"summary":"Get Current User Info","operationId":"get_current_user_info_auth_me_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserContextResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/auth/rate-limits":{"get":{"summary":"Get Rate Limits","operationId":"get_rate_limits_auth_rate_limits_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint","in":"query","required":false,"schema":{"type":"string","default":"global","title":"Endpoint"}},{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/auth/token-info":{"get":{"summary":"Token Info","operationId":"token_info_auth_token_info_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/auth/feature-access":{"get":{"summary":"Feature Access","operationId":"feature_access_auth_feature_access_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"feature","in":"query","required":true,"schema":{"type":"string","title":"Feature"}},{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureAccessResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/annotation/status":{"get":{"summary":"Annotation Status","operationId":"annotation_status_annotation_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnotationStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/annotation/annotate":{"post":{"summary":"Annotate Sequence","operationId":"annotate_sequence_annotation_annotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnotationProxyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/graphrag/health":{"get":{"summary":"Graphrag Health","operationId":"graphrag_health_graphrag_health_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/graphrag/query":{"post":{"summary":"Graphrag Query","operationId":"graphrag_query_graphrag_query_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphRAGRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphRAGResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/graphrag/status":{"get":{"summary":"Graphrag Status","operationId":"graphrag_status_graphrag_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/alignment/align":{"post":{"summary":"Align Sequences","operationId":"align_sequences_alignment_align_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlignmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlignmentResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/analyze":{"post":{"summary":"Analyze Sequence Selection","operationId":"analyze_sequence_selection_sequence_analyze_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SequenceSelectionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SequenceAnalysisResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/files/parse":{"post":{"summary":"Parse File","operationId":"parse_file_files_parse_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_parse_file_files_parse_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/translate":{"post":{"summary":"Translate Sequence","operationId":"translate_sequence_sequence_translate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/pcr/simulate":{"post":{"summary":"Pcr Simulate Endpoint","operationId":"pcr_simulate_endpoint_pcr_simulate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PCRRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PCRSimulationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/digest/simulate":{"post":{"summary":"Digest Simulate Endpoint","operationId":"digest_simulate_endpoint_digest_simulate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigestResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/primer/design":{"post":{"summary":"Primer Design Endpoint","operationId":"primer_design_endpoint_primer_design_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrimerDesignRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrimerDesignResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/enzymes/search":{"post":{"summary":"Enzyme Search Endpoint","operationId":"enzyme_search_endpoint_enzymes_search_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnzymeSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnzymeSearchResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/enzymes/list":{"post":{"summary":"Get Enzyme List","operationId":"get_enzyme_list_enzymes_list_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnzymeListRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnzymeListResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/enzymes/analyze":{"post":{"summary":"Analyze Restriction Sites","operationId":"analyze_restriction_sites_enzymes_analyze_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestrictionAnalysisRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestrictionAnalysisResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/enzymes/search/enhanced":{"post":{"summary":"Enzyme Search Enhanced","operationId":"enzyme_search_enhanced_enzymes_search_enhanced_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnzymeSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnzymeSearchResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/blast/status":{"get":{"summary":"Blast Status","operationId":"blast_status_blast_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/blast/search":{"post":{"summary":"Blast Search","operationId":"blast_search_blast_search_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlastRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlastResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/edits/preview":{"post":{"summary":"Sequence Edits Preview","operationId":"sequence_edits_preview_sequence_edits_preview_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SequenceEditsPreviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SequenceEditsPreviewResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/edits/apply":{"post":{"summary":"Sequence Edits Apply","operationId":"sequence_edits_apply_sequence_edits_apply_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SequenceEditsApplyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SequenceEditsApplyResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/reanchor":{"post":{"summary":"Sequence Reanchor","operationId":"sequence_reanchor_sequence_reanchor_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReanchorRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/qc/primers":{"post":{"summary":"Sequence Qc Primers","operationId":"sequence_qc_primers_sequence_qc_primers_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrimerQCRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/smart/insert":{"post":{"summary":"Sequence Smart Insert","operationId":"sequence_smart_insert_sequence_smart_insert_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartInsertRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/smart/delete":{"post":{"summary":"Sequence Smart Delete","operationId":"sequence_smart_delete_sequence_smart_delete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartDeleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/smart/replace":{"post":{"summary":"Sequence Smart Replace","operationId":"sequence_smart_replace_sequence_smart_replace_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartReplaceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/primer/validate":{"post":{"summary":"Validate Primers","operationId":"validate_primers_primer_validate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrimerValidationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrimerValidationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/primers/add":{"post":{"summary":"Add Primers To Sequence","operationId":"add_primers_to_sequence_sequence_primers_add_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/sequence/edit":{"post":{"summary":"Unified Sequence Edit","operationId":"unified_sequence_edit_sequence_edit_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnifiedSequenceEditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnifiedSequenceEditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/chat":{"post":{"summary":"Chat Endpoint","operationId":"chat_endpoint_chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"X-Session-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}}},"components":{"schemas":{"AlignmentRequest":{"properties":{"sequence1":{"type":"string","title":"Sequence1"},"sequence2":{"type":"string","title":"Sequence2"},"name1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name1","default":"Sequence 1"},"name2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name2","default":"Sequence 2"},"algorithm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Algorithm","default":"global"},"match_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Match Score","default":2},"mismatch_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mismatch Score","default":-1},"gap_open":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gap Open","default":-2},"gap_extend":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gap Extend","default":-1}},"type":"object","required":["sequence1","sequence2"],"title":"AlignmentRequest"},"AlignmentResult":{"properties":{"success":{"type":"boolean","title":"Success"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"},"identity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Identity"},"matches":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Matches"},"gaps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gaps"},"alignment_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Alignment Length"},"aligned_seq1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aligned Seq1"},"aligned_seq2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aligned Seq2"},"match_line":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Match Line"},"formatted_alignment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Formatted Alignment"},"algorithm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Algorithm"},"parameters":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Parameters"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success"],"title":"AlignmentResult"},"AnalysisSummary":{"properties":{"vector_summary":{"$ref":"#/components/schemas/VectorSummary"},"insert_summary":{"$ref":"#/components/schemas/InsertSummary"}},"type":"object","required":["vector_summary","insert_summary"],"title":"AnalysisSummary"},"Annotation":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"},"forward":{"type":"boolean","title":"Forward","default":true},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"notes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Notes","default":[]},"parentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentid"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"status":{"$ref":"#/components/schemas/FeatureStatus","default":"ok"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"orig_end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Orig End"},"orig_start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Orig Start"}},"type":"object","required":["name","type","start","end"],"title":"Annotation"},"AnnotationProxyRequest":{"properties":{"file_content":{"type":"string","title":"File Content"},"filename":{"type":"string","title":"Filename"},"file_type":{"type":"string","title":"File Type","default":"auto"}},"type":"object","required":["file_content","filename"],"title":"AnnotationProxyRequest"},"AnnotationStatusResponse":{"properties":{"service":{"type":"string","title":"Service"},"plannotate_available":{"type":"boolean","title":"Plannotate Available"},"prokka_available":{"type":"boolean","title":"Prokka Available","default":false},"plasann_available":{"type":"boolean","title":"Plasann Available","default":false},"version":{"type":"string","title":"Version","default":"1.2.2"},"message":{"type":"string","title":"Message"}},"type":"object","required":["service","plannotate_available","message"],"title":"AnnotationStatusResponse"},"ApiError":{"properties":{"error":{"$ref":"#/components/schemas/ErrorInfo","description":"Standard error envelope"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Server-assigned request ID for correlation"}},"type":"object","required":["error"],"title":"ApiError"},"AuthStatusResponse":{"properties":{"service":{"type":"string","title":"Service","default":"auth"},"better_auth_available":{"type":"boolean","title":"Better Auth Available"},"guest_mode_enabled":{"type":"boolean","title":"Guest Mode Enabled"},"redis_available":{"type":"boolean","title":"Redis Available"},"rate_limiting_enabled":{"type":"boolean","title":"Rate Limiting Enabled"},"supported_auth_types":{"items":{"type":"string"},"type":"array","title":"Supported Auth Types"},"version":{"type":"string","title":"Version","default":"1.0.0"}},"type":"object","required":["better_auth_available","guest_mode_enabled","redis_available","rate_limiting_enabled","supported_auth_types"],"title":"AuthStatusResponse","description":"Authentication service status"},"AvailableEnzymes":{"properties":{"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count"},"sample":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sample"}},"type":"object","title":"AvailableEnzymes"},"BenchCalculations":{"properties":{"ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ratio"},"vector_mass_ng":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vector Mass Ng"},"insert_mass_ng":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Insert Mass Ng"},"vector_pmol":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vector Pmol"},"insert_pmol":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Insert Pmol"},"reaction_volume_uL":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reaction Volume Ul"},"vector_volume_uL":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vector Volume Ul"},"insert_volume_uL":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Insert Volume Ul"},"buffer_volume_uL":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Buffer Volume Ul"},"water_volume_uL":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Water Volume Ul"},"assumptions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assumptions"}},"type":"object","title":"BenchCalculations"},"BenchCard":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Ready | Blocked"},"why":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Why"},"blocked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blocked Reason"},"missing_fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Missing Fields"},"enzymes":{"anyOf":[{"items":{"$ref":"#/components/schemas/BenchCardEnzymeRow"},"type":"array"},{"type":"null"}],"title":"Enzymes"},"methylation_with_DH5a":{"anyOf":[{"items":{"$ref":"#/components/schemas/BenchCardMethylationItem"},"type":"array"},{"type":"null"}],"title":"Methylation With Dh5A"},"digest_and_prep":{"anyOf":[{"$ref":"#/components/schemas/DigestAndPrep"},{"type":"null"}]},"primers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Primers"},"ligation":{"anyOf":[{"$ref":"#/components/schemas/BenchLigation"},{"type":"null"}]},"transformation":{"anyOf":[{"$ref":"#/components/schemas/Transformation"},{"type":"null"}]},"quality_control":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quality Control"},"risks_and_mitigations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Risks And Mitigations"}},"type":"object","title":"BenchCard"},"BenchCardEnzymeRow":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"site":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"overhang":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Overhang"},"temp_c":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Temp C"},"heat_inactivation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Heat Inactivation"},"buffer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buffer"},"buffer_provenance":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Buffer Provenance"},"star_activity":{"anyOf":[{"$ref":"#/components/schemas/StarActivity"},{"type":"null"}]},"methylation":{"anyOf":[{"$ref":"#/components/schemas/MethylationSensitivity"},{"type":"null"}]}},"type":"object","title":"BenchCardEnzymeRow"},"BenchCardMethylationItem":{"properties":{"enzyme":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enzyme"},"dam":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dam"},"dcm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dcm"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"workarounds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Workarounds"}},"type":"object","title":"BenchCardMethylationItem"},"BenchDigest":{"properties":{"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"double | sequential | single"},"buffer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buffer","description":"Recommended buffer or note"},"temperature_c":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Temperature C","description":"Working temperature in °C"},"steps":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/ProtocolSubStep"},{"type":"string"}]},"type":"array"},{"type":"null"}],"title":"Steps"}},"type":"object","title":"BenchDigest"},"BenchLigation":{"properties":{"enzyme":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enzyme","description":"Ligase enzyme name"},"ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ratio","description":"Vector:insert ratio or insert:vector as string"},"conditions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conditions","description":"Temperature/time conditions"},"amounts":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Amounts"},"volume_ul":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Volume Ul"}},"type":"object","title":"BenchLigation"},"BenchPlan":{"properties":{"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"buffer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buffer"},"temperature_c":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Temperature C"},"duration_min":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Duration Min"},"heat_inactivation":{"anyOf":[{"$ref":"#/components/schemas/BenchPlanHI"},{"type":"null"}]}},"additionalProperties":true,"type":"object","title":"BenchPlan"},"BenchPlanEntry":{"properties":{"strategy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategy"},"bench_plan":{"anyOf":[{"$ref":"#/components/schemas/BenchPlan"},{"type":"null"}]}},"type":"object","title":"BenchPlanEntry"},"BenchPlanHI":{"properties":{"temperature_c":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Temperature C"},"time_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Min"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","title":"BenchPlanHI"},"BenchQCItem":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"anyOf":[{"type":"string","enum":["gel","colony_pcr","restriction_digest","sanger"]},{"type":"null"}],"title":"Method"},"expected":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected"}},"type":"object","title":"BenchQCItem"},"BenchReady":{"properties":{"enzyme_pair":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enzyme Pair"},"digest":{"anyOf":[{"$ref":"#/components/schemas/BenchDigest"},{"type":"null"}]},"ligation":{"anyOf":[{"$ref":"#/components/schemas/BenchLigation"},{"type":"null"}]},"qc":{"anyOf":[{"items":{"$ref":"#/components/schemas/BenchQCItem"},"type":"array"},{"type":"null"}],"title":"Qc"},"troubleshooting":{"anyOf":[{"items":{"$ref":"#/components/schemas/BenchTroubleshooting"},"type":"array"},{"type":"null"}],"title":"Troubleshooting"},"calculations":{"anyOf":[{"$ref":"#/components/schemas/BenchCalculations"},{"type":"null"}]}},"type":"object","title":"BenchReady"},"BenchTroubleshooting":{"properties":{"issue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issue"},"remedies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Remedies"}},"type":"object","title":"BenchTroubleshooting"},"BlastHit":{"properties":{"hit_id":{"type":"string","title":"Hit Id","description":"Database sequence identifier"},"hit_def":{"type":"string","title":"Hit Def","description":"Database sequence description"},"hit_len":{"type":"integer","title":"Hit Len","description":"Database sequence length"},"evalue":{"type":"number","title":"Evalue","description":"E-value of the alignment"},"bit_score":{"type":"number","title":"Bit Score","description":"Bit score of the alignment"},"score":{"type":"integer","title":"Score","description":"Raw score of the alignment"},"identity":{"type":"integer","title":"Identity","description":"Number of identical matches"},"positives":{"type":"integer","title":"Positives","description":"Number of positive-scoring matches"},"gaps":{"type":"integer","title":"Gaps","description":"Number of gaps in alignment"},"align_len":{"type":"integer","title":"Align Len","description":"Length of the alignment"},"query_start":{"type":"integer","title":"Query Start","description":"Start position in query sequence"},"query_end":{"type":"integer","title":"Query End","description":"End position in query sequence"},"hit_start":{"type":"integer","title":"Hit Start","description":"Start position in hit sequence"},"hit_end":{"type":"integer","title":"Hit End","description":"End position in hit sequence"},"query_seq":{"type":"string","title":"Query Seq","description":"Aligned query sequence"},"hit_seq":{"type":"string","title":"Hit Seq","description":"Aligned hit sequence"},"midline":{"type":"string","title":"Midline","description":"Alignment midline showing matches"},"percent_identity":{"type":"number","title":"Percent Identity","description":"Percentage identity of alignment"},"query_coverage":{"type":"number","title":"Query Coverage","description":"Percentage of query covered by alignment"},"hit_coverage":{"type":"number","title":"Hit Coverage","description":"Percentage of hit covered by alignment"}},"type":"object","required":["hit_id","hit_def","hit_len","evalue","bit_score","score","identity","positives","gaps","align_len","query_start","query_end","hit_start","hit_end","query_seq","hit_seq","midline","percent_identity","query_coverage","hit_coverage"],"title":"BlastHit"},"BlastRequest":{"properties":{"query_sequence":{"type":"string","title":"Query Sequence","description":"DNA sequence to search against database"},"program":{"type":"string","title":"Program","description":"BLAST program type","default":"blastn"},"database":{"type":"string","title":"Database","description":"Database name to search against","default":"gene_loop"},"evalue":{"type":"number","title":"Evalue","description":"E-value threshold","default":10},"max_hits":{"type":"integer","title":"Max Hits","description":"Maximum number of hits to return","default":100},"word_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Word Size","description":"Word size for initial matches"},"dust":{"type":"boolean","title":"Dust","description":"Filter low complexity regions","default":true}},"type":"object","required":["query_sequence"],"title":"BlastRequest"},"BlastResult":{"properties":{"query_id":{"type":"string","title":"Query Id","description":"Query sequence identifier"},"query_len":{"type":"integer","title":"Query Len","description":"Query sequence length"},"program":{"type":"string","title":"Program","description":"BLAST program used"},"database":{"type":"string","title":"Database","description":"Database searched"},"hits":{"items":{"$ref":"#/components/schemas/BlastHit"},"type":"array","title":"Hits","description":"List of BLAST hits"},"num_hits":{"type":"integer","title":"Num Hits","description":"Total number of hits found"},"search_time":{"type":"number","title":"Search Time","description":"Time taken for search in seconds"},"success":{"type":"boolean","title":"Success","description":"Whether search was successful","default":true},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if search failed"}},"type":"object","required":["query_id","query_len","program","database","hits","num_hits","search_time"],"title":"BlastResult"},"Body_parse_file_files_parse_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_parse_file_files_parse_post"},"CandidateSets":{"properties":{"vector_unique_in_mcs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vector Unique In Mcs"},"insert_single_cut":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Insert Single Cut"},"overlap":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Overlap"}},"type":"object","title":"CandidateSets"},"CitationItem":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"type":"object","title":"CitationItem"},"CloningConstraints":{"properties":{"preferred_enzymes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Enzymes","description":"Prioritize these enzymes where possible"},"disallowed_enzymes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Disallowed Enzymes","description":"Exclude these enzymes from strategies"},"require_directional":{"type":"boolean","title":"Require Directional","description":"Prefer strategies with unambiguous insert orientation","default":true},"max_levels":{"type":"integer","maximum":4,"minimum":1,"title":"Max Levels","description":"Max strategy levels to consider (1–4)","default":4},"cloning_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cloning Method","description":"Requested cloning method override (e.g., 'golden_gate')"}},"type":"object","title":"CloningConstraints","description":"User constraints guiding strategy search."},"CloningContext":{"properties":{"host_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Host Type","description":"Host category: prokaryote | eukaryote"},"eukaryotic_system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eukaryotic System","description":"mammalian | yeast | insect | plant"},"cell_line":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cell Line"},"ecoli_strain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ecoli Strain","description":"Default strain used for checks (if applicable)","default":"DH5α"},"methylation":{"$ref":"#/components/schemas/MethylationContext","default":{"dam":true,"dcm":true,"cpg":false}},"buffer_preference":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Buffer Preference","description":"Preferred buffer families or vendors"},"reaction_volume_uL":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reaction Volume Ul","description":"Total reaction volume in μL"},"vector_stock_ng_per_uL":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vector Stock Ng Per Ul","description":"Vector stock concentration (ng/μL)"},"insert_stock_ng_per_uL":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Insert Stock Ng Per Ul","description":"Insert stock concentration (ng/μL)"},"ligation_ratio":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Ligation Ratio","description":"Vector:insert molar ratio as number (insert:vector) or string '1:3'"},"target_vector_pmol":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Vector Pmol","description":"Target vector pmol in reaction"}},"type":"object","title":"CloningContext"},"CloningStrategy":{"properties":{"level":{"type":"integer","title":"Level","description":"Strategy level (1–4)"},"name":{"type":"string","title":"Name","description":"Human-readable name for the strategy"},"success_probability":{"type":"number","maximum":1,"minimum":0,"title":"Success Probability","description":"Estimated probability of success (0–1)"},"complexity_score":{"type":"integer","title":"Complexity Score","description":"Relative complexity (higher is more complex)"},"enzymes":{"items":{"$ref":"#/components/schemas/EnzymeDetail"},"type":"array","title":"Enzymes","description":"Enzymes used in this strategy"},"compatibility":{"$ref":"#/components/schemas/CompatibilityInfo","description":"Buffer/temperature compatibility summary"},"conflicts":{"$ref":"#/components/schemas/ConflictInfo","description":"Potential conflicts detected"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings","description":"Caveats and warnings for this strategy"},"protocol":{"$ref":"#/components/schemas/ProtocolStep","description":"Bench-ready protocol outline"},"primers":{"anyOf":[{"$ref":"#/components/schemas/PrimerDesignResult"},{"type":"null"}],"description":"Primer design details for Level 4 strategies"},"rationale_llm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rationale Llm","description":"Concise LLM rationale for why this strategy was selected"},"exclusions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclusions","description":"LLM summary of alternatives excluded and why"},"verification_expectations":{"anyOf":[{"$ref":"#/components/schemas/VerificationExpectations"},{"type":"null"}],"description":"LLM-provided non-operational verification expectations"}},"additionalProperties":true,"type":"object","required":["level","name","success_probability","complexity_score","enzymes","compatibility","conflicts","warnings","protocol"],"title":"CloningStrategy","description":"One viable strategy including enzymes, protocol, and verification. Outward positions are 1-based."},"ColonyPCRItem":{"properties":{"forward":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward","description":"Forward primer name/sequence"},"reverse":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reverse","description":"Reverse primer name/sequence"},"expected_bp":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Expected Bp","description":"Expected amplicon size (bp)"},"expected":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Expected"}},"additionalProperties":true,"type":"object","title":"ColonyPCRItem"},"CompatibilityInfo":{"properties":{"shared_buffer":{"type":"boolean","title":"Shared Buffer","description":"True if enzymes work in one buffer"},"sequential_digest_recommended":{"type":"boolean","title":"Sequential Digest Recommended","description":"True if digest should be sequential"},"site_spacing_bp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Site Spacing Bp","description":"Distance between cut sites (bp)"},"buffer_compatibility":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Buffer Compatibility","description":"Detailed buffer compatibility info"}},"type":"object","required":["shared_buffer","sequential_digest_recommended"],"title":"CompatibilityInfo"},"ConflictInfo":{"properties":{"insert_internal_cuts":{"items":{"type":"string"},"type":"array","title":"Insert Internal Cuts","description":"Enzymes cutting inside insert"},"vector_backbone_cuts":{"items":{"type":"string"},"type":"array","title":"Vector Backbone Cuts","description":"Undesired backbone cut enzymes"},"methylation_blocks":{"items":{"type":"string"},"type":"array","title":"Methylation Blocks","description":"Enzymes blocked by methylation context"}},"type":"object","title":"ConflictInfo"},"CutSitePos":{"properties":{"pos":{"type":"integer","title":"Pos","description":"Cut site position (1-based)"},"in_mcs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"In Mcs","description":"True if position lies within an MCS region"}},"type":"object","required":["pos"],"title":"CutSitePos"},"CutSitesPerEnzyme":{"properties":{"enzyme":{"type":"string","title":"Enzyme","description":"Enzyme name"},"sites":{"items":{"$ref":"#/components/schemas/CutSitePos"},"type":"array","title":"Sites","description":"Cut site positions for enzyme"}},"type":"object","required":["enzyme","sites"],"title":"CutSitesPerEnzyme"},"Cutsite":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"},"recognition_sequence":{"type":"string","title":"Recognition Sequence"},"overhang":{"type":"string","title":"Overhang"},"restriction_enzyme":{"$ref":"#/components/schemas/RestrictionEnzyme"}},"type":"object","required":["id","name","start","end","recognition_sequence","overhang","restriction_enzyme"],"title":"Cutsite"},"DeterministicDebug":{"properties":{"available_enzymes":{"anyOf":[{"$ref":"#/components/schemas/AvailableEnzymes"},{"type":"null"}]}},"additionalProperties":true,"type":"object","title":"DeterministicDebug"},"DiagnosticDigestItem":{"properties":{"enzymes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enzymes","description":"Enzymes used for diagnostic digest"},"expected_bands":{"anyOf":[{"type":"string"},{"type":"integer"},{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Expected Bands","description":"Expected band sizes (bp)"}},"additionalProperties":true,"type":"object","title":"DiagnosticDigestItem"},"Diagnostics":{"properties":{"mcs_regions":{"anyOf":[{"items":{"$ref":"#/components/schemas/app__restriction_cloning__models__restriction_planning__Region"},"type":"array"},{"type":"null"}],"title":"Mcs Regions"},"candidate_sets":{"anyOf":[{"$ref":"#/components/schemas/CandidateSets"},{"type":"null"}]},"deterministic":{"anyOf":[{"$ref":"#/components/schemas/DeterministicDebug"},{"type":"null"}]},"pair_drops":{"anyOf":[{"$ref":"#/components/schemas/PairDrops"},{"type":"null"}]},"post":{"anyOf":[{"$ref":"#/components/schemas/PostSummary"},{"type":"null"}]},"policy_toggles":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Policy Toggles"},"reason_hints":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Reason Hints"}},"additionalProperties":true,"type":"object","title":"Diagnostics"},"DigestAndPrep":{"properties":{"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"steps":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/ProtocolSubStep"},{"type":"string"}]},"type":"array"},{"type":"null"}],"title":"Steps"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"additionalProperties":true,"type":"object","title":"DigestAndPrep"},"DigestFragment":{"properties":{"id":{"type":"string","title":"Id"},"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"},"length":{"type":"integer","title":"Length"},"sequence_data":{"type":"string","title":"Sequence Data"},"enzymes":{"items":{"type":"string"},"type":"array","title":"Enzymes"},"molecular_weight":{"type":"number","title":"Molecular Weight"}},"type":"object","required":["id","start","end","length","sequence_data","enzymes","molecular_weight"],"title":"DigestFragment"},"DigestRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__restriction_cloning__models__core__SequenceData"},"enzymes":{"items":{"type":"string"},"type":"array","title":"Enzymes"}},"type":"object","required":["sequence_data","enzymes"],"title":"DigestRequest"},"DigestResult":{"properties":{"fragments":{"items":{"$ref":"#/components/schemas/DigestFragment"},"type":"array","title":"Fragments"}},"type":"object","required":["fragments"],"title":"DigestResult"},"EditOperation":{"properties":{"type":{"$ref":"#/components/schemas/EditOperationType"},"start":{"type":"integer","minimum":1,"title":"Start","description":"1-based start position"},"end":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"End","description":"1-based end position (required for del/rep)"},"seq":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seq"}},"type":"object","required":["type","start"],"title":"EditOperation"},"EditOperationType":{"type":"string","enum":["del","ins","rep"],"title":"EditOperationType"},"EnhancedRestrictionPlanRequest":{"properties":{"vector":{"$ref":"#/components/schemas/app__restriction_cloning__models__core__SequenceData","description":"Vector sequence and annotations (1-based positions)"},"insert":{"$ref":"#/components/schemas/InsertData","description":"Insert definition (plasmid | PCR | sequence)"},"constraints":{"anyOf":[{"$ref":"#/components/schemas/CloningConstraints"},{"type":"null"}],"description":"User constraints for strategy selection"},"context":{"anyOf":[{"$ref":"#/components/schemas/CloningContext"},{"type":"null"}],"description":"Host/methylation/buffer context"},"options":{"anyOf":[{"$ref":"#/components/schemas/PlannerOptions"},{"type":"null"}],"description":"Planner options including manual site"}},"type":"object","required":["vector","insert"],"title":"EnhancedRestrictionPlanRequest","description":"Restriction cloning planning request. All outward positions in the request are 1-based."},"EnhancedRestrictionPlanResult":{"properties":{"analysis":{"$ref":"#/components/schemas/AnalysisSummary","description":"Vector/insert analysis summary"},"strategies":{"items":{"$ref":"#/components/schemas/CloningStrategy"},"type":"array","title":"Strategies","description":"Ranked list of viable strategies"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Planner message or hint"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence","description":"Planner confidence in top candidates (0–1)"},"warnings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Warnings","description":"Global warnings"},"assumptions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Assumptions","description":"Global assumptions affecting strategies"},"output_validation":{"anyOf":[{"$ref":"#/components/schemas/OutputValidation"},{"type":"null"}],"description":"Validation checks and citations"},"sequence_context":{"anyOf":[{"$ref":"#/components/schemas/SequenceContextReport"},{"type":"null"}],"description":"Sequence context and map data"},"strategy_cards":{"anyOf":[{"items":{"$ref":"#/components/schemas/StrategyCard"},"type":"array"},{"type":"null"}],"title":"Strategy Cards"},"visual_map":{"anyOf":[{"$ref":"#/components/schemas/VisualMap"},{"type":"null"}]},"rejections":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Rejections"},"llm_plan":{"anyOf":[{"$ref":"#/components/schemas/LLMPlan"},{"type":"null"}]},"llm_analysis_summary":{"anyOf":[{"$ref":"#/components/schemas/LLMAnalysisSummary"},{"type":"null"}]},"llm_ranking":{"anyOf":[{"$ref":"#/components/schemas/LLMRanking"},{"type":"null"}]},"bench_ready":{"anyOf":[{"$ref":"#/components/schemas/BenchReady"},{"type":"null"}]},"bench_card":{"anyOf":[{"$ref":"#/components/schemas/BenchCard"},{"type":"null"}]},"diagnostics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Diagnostics","description":"Debug diagnostics including policy trace and candidate sets"}},"type":"object","required":["analysis","strategies"],"title":"EnhancedRestrictionPlanResult","description":"Restriction planning result. All outward positions in the response are 1-based."},"EntityResult":{"properties":{"name":{"type":"string","title":"Name"},"entity_type":{"type":"string","title":"Entity Type"},"description":{"type":"string","title":"Description"},"confidence":{"type":"number","title":"Confidence"},"properties":{"additionalProperties":true,"type":"object","title":"Properties"},"relationships":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Relationships"}},"type":"object","required":["name","entity_type","description","confidence","properties","relationships"],"title":"EntityResult","description":"Individual entity result from GraphRAG"},"EnzymeDetail":{"properties":{"name":{"type":"string","title":"Name","description":"Enzyme name, e.g., EcoRI"},"recognition_sequence":{"type":"string","title":"Recognition Sequence","description":"Recognition sequence, e.g., GAATTC"},"cut_site":{"type":"string","title":"Cut Site","description":"Cut position representation relative to recognition site"},"overhang_type":{"$ref":"#/components/schemas/OverhangType","description":"Canonical tokens: 5_prime_overhang | 3_prime_overhang | blunt | unknown"},"overhang_sequence":{"type":"string","title":"Overhang Sequence","description":"Overhang sequence (empty for blunt)"},"buffer_groups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Buffer Groups","description":"Compatible buffer groups"},"optimal_temp_c":{"type":"integer","title":"Optimal Temp C","description":"Optimal digestion temperature (°C)"},"activity_at_optimal_percent":{"type":"integer","title":"Activity At Optimal Percent","description":"Relative activity at optimal temperature (%)"},"heat_inactivation":{"$ref":"#/components/schemas/HeatInactivation"},"methylation_sensitivity":{"$ref":"#/components/schemas/MethylationSensitivity"},"star_activity":{"anyOf":[{"$ref":"#/components/schemas/StarActivity"},{"type":"null"}],"description":"Star activity risk info"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/EnzymeMetadata"},{"type":"null"}]}},"type":"object","required":["name","recognition_sequence","cut_site","overhang_type","overhang_sequence","optimal_temp_c","activity_at_optimal_percent","heat_inactivation","methylation_sensitivity"],"title":"EnzymeDetail"},"EnzymeInfo":{"properties":{"name":{"type":"string","title":"Name"},"recognition_sequence":{"type":"string","title":"Recognition Sequence"},"cut_site":{"type":"string","title":"Cut Site"},"fcut":{"type":"integer","title":"Fcut"},"rcut":{"type":"integer","title":"Rcut"},"overhang_type":{"type":"string","title":"Overhang Type"},"overhang_length":{"type":"integer","title":"Overhang Length"},"is_palindromic":{"type":"boolean","title":"Is Palindromic"},"suppliers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Suppliers","default":[]},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"recognition_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recognition Length"},"cut_type_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut Type Category"},"recognition_length_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recognition Length Category"},"classifications":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Classifications"}},"type":"object","required":["name","recognition_sequence","cut_site","fcut","rcut","overhang_type","overhang_length","is_palindromic"],"title":"EnzymeInfo"},"EnzymeListRequest":{"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","default":"common"},"overhang_filter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overhang Filter"},"recognition_length":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Recognition Length"},"suppliers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Suppliers"}},"type":"object","title":"EnzymeListRequest"},"EnzymeListResult":{"properties":{"enzymes":{"items":{"$ref":"#/components/schemas/EnzymeInfo"},"type":"array","title":"Enzymes"},"total_count":{"type":"integer","title":"Total Count"},"category":{"type":"string","title":"Category"},"classification_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Classification Summary"}},"type":"object","required":["enzymes","total_count","category"],"title":"EnzymeListResult"},"EnzymeMetadata":{"properties":{"in_inventory":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"In Inventory"},"provenance_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provenance Summary"},"methylation_provenance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Methylation Provenance"},"buffer_provenance":{"anyOf":[{},{"type":"null"}],"title":"Buffer Provenance"},"suggested_isoschizomers":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Suggested Isoschizomers"},"bench_plan":{"anyOf":[{"$ref":"#/components/schemas/BenchPlan"},{"type":"null"}]},"sequential_plan":{"anyOf":[{"$ref":"#/components/schemas/SequentialPlan"},{"type":"null"}]},"citations":{"anyOf":[{"items":{"$ref":"#/components/schemas/CitationItem"},"type":"array"},{"type":"null"}],"title":"Citations"}},"additionalProperties":true,"type":"object","title":"EnzymeMetadata"},"EnzymeSearchCriteria":{"properties":{"cut_frequency":{"type":"string","pattern":"^(none|single|double|multiple)$","title":"Cut Frequency","default":"single"},"recognition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recognition"},"overhangs":{"type":"string","pattern":"^(any|blunt|sticky)$","title":"Overhangs","default":"any"}},"type":"object","title":"EnzymeSearchCriteria"},"EnzymeSearchRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__restriction_cloning__models__core__SequenceData"},"criteria":{"$ref":"#/components/schemas/EnzymeSearchCriteria"}},"type":"object","required":["sequence_data","criteria"],"title":"EnzymeSearchRequest"},"EnzymeSearchResult":{"properties":{"results":{"items":{"$ref":"#/components/schemas/Cutsite"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"EnzymeSearchResult"},"ErrorInfo":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Domain error code (e.g., RCP_NO_VALID_STRATEGIES)"},"message":{"type":"string","title":"Message","description":"Human-readable error message"},"details":{"anyOf":[{},{"type":"null"}],"title":"Details","description":"Context-specific details for debugging"}},"type":"object","required":["message"],"title":"ErrorInfo"},"ExclusionItem":{"properties":{"strategy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategy"},"exclusion":{"type":"string","title":"Exclusion"}},"type":"object","required":["exclusion"],"title":"ExclusionItem"},"FeatureAccessResponse":{"properties":{"feature":{"type":"string","title":"Feature"},"allowed":{"type":"boolean","title":"Allowed"},"user_type":{"type":"string","title":"User Type"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"upgrade_required":{"type":"boolean","title":"Upgrade Required","default":false}},"type":"object","required":["feature","allowed","user_type"],"title":"FeatureAccessResponse","description":"Feature access information for users"},"FeatureStatus":{"type":"string","enum":["ok","partial","reanchored","frame_disrupted","invalid"],"title":"FeatureStatus"},"GraphRAGRequest":{"properties":{"query":{"type":"string","title":"Query","description":"Natural language query about biological entities"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context","description":"Additional context (e.g., current sequence, plasmid info)"},"max_results":{"type":"integer","title":"Max Results","description":"Maximum number of results to return","default":10},"include_pathways":{"type":"boolean","title":"Include Pathways","description":"Whether to include pathway information in results","default":true},"model_preference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Preference","description":"Preferred LLM model for response generation","default":"gemini-2.5-flash"}},"type":"object","required":["query"],"title":"GraphRAGRequest","description":"Request model for GraphRAG queries"},"GraphRAGResponse":{"properties":{"query":{"type":"string","title":"Query"},"query_type":{"$ref":"#/components/schemas/QueryType"},"answer":{"type":"string","title":"Answer"},"confidence":{"type":"number","title":"Confidence"},"entities":{"items":{"$ref":"#/components/schemas/EntityResult"},"type":"array","title":"Entities"},"pathways":{"items":{"$ref":"#/components/schemas/PathwayResult"},"type":"array","title":"Pathways"},"context_used":{"items":{"type":"string"},"type":"array","title":"Context Used"},"model_used":{"type":"string","title":"Model Used"},"processing_time":{"type":"number","title":"Processing Time"},"success":{"type":"boolean","title":"Success","default":true},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"database_recommendations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Database Recommendations"},"biological_intent":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Biological Intent"},"sequence_filtering_strategy":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sequence Filtering Strategy"}},"type":"object","required":["query","query_type","answer","confidence","entities","pathways","context_used","model_used","processing_time"],"title":"GraphRAGResponse","description":"Response model for GraphRAG queries"},"GuestTokenRequest":{"properties":{"fingerprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fingerprint"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent"},"accept_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept Language"}},"type":"object","title":"GuestTokenRequest","description":"Request model for creating guest tokens"},"GuestTokenResponse":{"properties":{"token":{"type":"string","title":"Token"},"guest_id":{"type":"string","title":"Guest Id"},"expires_at":{"type":"string","title":"Expires At"},"permissions":{"items":{"type":"string"},"type":"array","title":"Permissions"},"token_type":{"type":"string","title":"Token Type","default":"guest"}},"type":"object","required":["token","guest_id","expires_at","permissions"],"title":"GuestTokenResponse","description":"Response model for guest token creation"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HeatInactivation":{"properties":{"temperature_c":{"type":"integer","title":"Temperature C","description":"Inactivation temperature in Celsius"},"time_min":{"type":"integer","title":"Time Min","description":"Inactivation time in minutes"},"is_thermostable":{"type":"boolean","title":"Is Thermostable","description":"Whether enzyme is thermostable","default":false},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method","description":"Inactivation method: heat, chemical","default":"heat"},"efficiency":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Efficiency","description":"Inactivation efficiency"}},"type":"object","required":["temperature_c","time_min"],"title":"HeatInactivation","description":"Model for enzyme heat inactivation properties"},"InsertData":{"properties":{"type":{"$ref":"#/components/schemas/InsertType","description":"Type of insert: plasmid | pcr | sequence"},"plasmid":{"anyOf":[{"$ref":"#/components/schemas/PlasmidInsert"},{"type":"null"}],"description":"Plasmid-based insert data"},"pcr":{"anyOf":[{"$ref":"#/components/schemas/PCRInsert"},{"type":"null"}],"description":"PCR-based insert data"},"sequence":{"anyOf":[{"$ref":"#/components/schemas/SequenceInsert"},{"type":"null"}],"description":"Direct sequence insert data"},"primers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Primers","description":"Optional legacy field for PCR primers"},"verification":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Verification","description":"Optional verification hints"}},"type":"object","required":["type"],"title":"InsertData","description":"Insert payload; exactly one of 'plasmid'|'pcr'|'sequence' should be populated."},"InsertSummary":{"properties":{"length":{"type":"integer","title":"Length"},"source":{"type":"string","title":"Source"},"pcr_verification":{"anyOf":[{"$ref":"#/components/schemas/PCRVerification"},{"type":"null"}]},"is_palindromic":{"type":"boolean","title":"Is Palindromic","default":false},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["length","source"],"title":"InsertSummary"},"InsertType":{"type":"string","enum":["plasmid","pcr","sequence"],"title":"InsertType"},"LLMAnalysisSummary":{"properties":{"top_recommendation_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Top Recommendation Name"},"recommendation_rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommendation Rationale"},"experimental_validation_plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experimental Validation Plan"},"warnings_and_failure_modes":{"anyOf":[{"items":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/LLMWarningFailureItem"}]},"type":"array"},{"type":"null"}],"title":"Warnings And Failure Modes"}},"additionalProperties":true,"type":"object","title":"LLMAnalysisSummary"},"LLMPlan":{"properties":{"primary":{"anyOf":[{"$ref":"#/components/schemas/LLMPlanStrategyRef"},{"type":"null"}]},"backups":{"anyOf":[{"items":{"$ref":"#/components/schemas/LLMPlanStrategyRef"},"type":"array"},{"type":"null"}],"title":"Backups"},"validation_checkpoints":{"anyOf":[{"items":{"$ref":"#/components/schemas/LLMPlanQCCheckpoint"},"type":"array"},{"type":"null"}],"title":"Validation Checkpoints"},"failure_modes":{"anyOf":[{"items":{"$ref":"#/components/schemas/LLMPlanFailureMode"},"type":"array"},{"type":"null"}],"title":"Failure Modes"},"warnings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Warnings"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"assumptions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Assumptions"}},"additionalProperties":true,"type":"object","title":"LLMPlan"},"LLMPlanFailureMode":{"properties":{"issue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issue"},"indicators":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Indicators"},"remedies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Remedies"}},"additionalProperties":true,"type":"object","title":"LLMPlanFailureMode"},"LLMPlanQCCheckpoint":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"anyOf":[{"type":"string","enum":["gel","colony_pcr","restriction_digest","sanger"]},{"type":"null"}],"title":"Method"},"expected_outcome":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Outcome"}},"additionalProperties":true,"type":"object","title":"LLMPlanQCCheckpoint"},"LLMPlanStrategyRef":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"enzyme_pair":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enzyme Pair"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rationale"},"protocol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protocol"},"buffer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buffer"},"temperature_c":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Temperature C"},"time_minutes":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Time Minutes"},"digest_mode":{"anyOf":[{"type":"string","enum":["sequential","double","simultaneous"]},{"type":"null"}],"title":"Digest Mode"}},"additionalProperties":true,"type":"object","title":"LLMPlanStrategyRef"},"LLMRanking":{"properties":{"ordered_ids":{"items":{"type":"string"},"type":"array","title":"Ordered Ids"},"per_id_rationale":{"additionalProperties":{"type":"string"},"type":"object","title":"Per Id Rationale"},"llm_confidence":{"type":"number","title":"Llm Confidence"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"id_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id Type","description":"Interpretation of ordered_ids (e.g., 'strategy_name')","default":"strategy_name"}},"type":"object","required":["ordered_ids","per_id_rationale","llm_confidence"],"title":"LLMRanking"},"LLMWarningFailureItem":{"properties":{"risk":{"type":"string","title":"Risk"},"mitigation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mitigation"}},"additionalProperties":true,"type":"object","required":["risk"],"title":"LLMWarningFailureItem"},"LevelExplanation":{"properties":{"final_levels":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Final Levels"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"reasons":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Reasons"},"policy":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Policy"},"candidate_counts":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Candidate Counts"},"methylation_blocked_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Methylation Blocked Count"}},"type":"object","title":"LevelExplanation"},"MethylationContext":{"properties":{"dam":{"type":"boolean","title":"Dam","default":true},"dcm":{"type":"boolean","title":"Dcm","default":true},"cpg":{"type":"boolean","title":"Cpg","default":false}},"type":"object","title":"MethylationContext"},"MethylationSensitivity":{"properties":{"dam":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dam","description":"dam methylation: ok, blocked, n/a, null","default":"ok"},"dcm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dcm","description":"dcm methylation: ok, blocked, n/a, null","default":"ok"},"cpg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cpg","description":"cpg methylation: ok, blocked, n/a, null","default":"ok"}},"type":"object","title":"MethylationSensitivity","description":"Model for enzyme methylation sensitivity"},"ORFData":{"properties":{"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"},"frame":{"type":"integer","title":"Frame"},"strand":{"type":"string","title":"Strand"},"length":{"type":"integer","title":"Length"},"dna_sequence":{"type":"string","title":"Dna Sequence"},"amino_acid_sequence":{"type":"string","title":"Amino Acid Sequence"},"gc_content":{"type":"number","title":"Gc Content"}},"type":"object","required":["start","end","frame","strand","length","dna_sequence","amino_acid_sequence","gc_content"],"title":"ORFData"},"OutputValidation":{"properties":{"checks":{"anyOf":[{"$ref":"#/components/schemas/OutputValidationChecks"},{"type":"null"}]},"warnings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Warnings"},"citations":{"anyOf":[{"items":{"$ref":"#/components/schemas/CitationItem"},"type":"array"},{"type":"null"}],"title":"Citations"},"sequential_plan":{"anyOf":[{"$ref":"#/components/schemas/SequentialPlan"},{"type":"null"}]},"sequential_plans":{"anyOf":[{"items":{"$ref":"#/components/schemas/SequentialPlanEntry"},"type":"array"},{"type":"null"}],"title":"Sequential Plans"},"bench_plans":{"anyOf":[{"items":{"$ref":"#/components/schemas/BenchPlanEntry"},"type":"array"},{"type":"null"}],"title":"Bench Plans"},"exclusions":{"anyOf":[{"items":{"$ref":"#/components/schemas/ExclusionItem"},"type":"array"},{"type":"null"}],"title":"Exclusions"},"level_explanation":{"anyOf":[{"$ref":"#/components/schemas/LevelExplanation"},{"type":"null"}]},"diagnostics":{"anyOf":[{"$ref":"#/components/schemas/Diagnostics"},{"type":"null"}]}},"additionalProperties":true,"type":"object","title":"OutputValidation"},"OutputValidationChecks":{"properties":{"no_backbone_cuts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"No Backbone Cuts"},"enzymes_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enzymes Available"},"no_methylation_conflicts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"No Methylation Conflicts"},"reading_frame_ok":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reading Frame Ok"},"buffer_temp_compatible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Buffer Temp Compatible"}},"additionalProperties":true,"type":"object","title":"OutputValidationChecks"},"OverhangType":{"type":"string","enum":["blunt","5_prime_overhang","3_prime_overhang","unknown"],"title":"OverhangType"},"PCRInsert":{"properties":{"template_sequence":{"type":"string","title":"Template Sequence","description":"Template DNA sequence used for PCR (A/T/C/G)"},"forward_primer":{"type":"string","title":"Forward Primer","description":"Forward primer sequence (5'→3')"},"reverse_primer":{"type":"string","title":"Reverse Primer","description":"Reverse primer sequence (5'→3')"},"expected_ends":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Ends","description":"Expected ends: 'blunt' | 'A-overhang' | 'restriction_sites'"}},"type":"object","required":["template_sequence","forward_primer","reverse_primer"],"title":"PCRInsert","description":"PCR-derived insert from template + primers."},"PCRProduct":{"properties":{"id":{"type":"string","title":"Id"},"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"},"length":{"type":"integer","title":"Length"},"forward_primer":{"$ref":"#/components/schemas/Primer"},"reverse_primer":{"$ref":"#/components/schemas/Primer"},"primers":{"items":{"type":"string"},"type":"array","title":"Primers"},"sequence_data":{"type":"string","title":"Sequence Data"},"tm":{"type":"number","title":"Tm"},"efficiency":{"type":"number","title":"Efficiency"},"amplification_time":{"type":"integer","title":"Amplification Time"}},"type":"object","required":["id","start","end","length","forward_primer","reverse_primer","primers","sequence_data","tm","efficiency","amplification_time"],"title":"PCRProduct"},"PCRRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__restriction_cloning__models__core__SequenceData"},"primer_ids":{"items":{"type":"string"},"type":"array","title":"Primer Ids"}},"type":"object","required":["sequence_data","primer_ids"],"title":"PCRRequest"},"PCRSimulationResult":{"properties":{"products":{"items":{"$ref":"#/components/schemas/PCRProduct"},"type":"array","title":"Products"}},"type":"object","required":["products"],"title":"PCRSimulationResult"},"PCRVerification":{"properties":{"status":{"type":"string","title":"Status"},"amplicons":{"items":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"array","title":"Amplicons"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["status"],"title":"PCRVerification"},"PairDrops":{"properties":{"L2":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"L2"},"L3":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"L3"},"filters":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Filters"}},"type":"object","title":"PairDrops"},"PathwayResult":{"properties":{"pathway_id":{"type":"string","title":"Pathway Id"},"pathway_name":{"type":"string","title":"Pathway Name"},"description":{"type":"string","title":"Description"},"genes":{"items":{"type":"string"},"type":"array","title":"Genes"},"relevance_score":{"type":"number","title":"Relevance Score"}},"type":"object","required":["pathway_id","pathway_name","description","genes","relevance_score"],"title":"PathwayResult","description":"Pathway information from GraphRAG"},"PlannerOptions":{"properties":{"include_lower_levels":{"type":"boolean","title":"Include Lower Levels","description":"Also include simpler fallback strategies","default":true},"max_strategies":{"type":"integer","title":"Max Strategies","description":"Maximum strategies to return","default":3},"strict_buffer_policy":{"type":"boolean","title":"Strict Buffer Policy","description":"Enforce buffer compatibility strictly","default":true},"verbose":{"type":"boolean","title":"Verbose","description":"Include verbose diagnostics in planner","default":false},"manual_insertion_site":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Manual Insertion Site","description":"1-based inclusive range {start,end} to target if vector lacks MCS"},"strategy_levels":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Strategy Levels","description":"Explicit strategy levels to include, e.g., [1,2,3]"},"policy_preset":{"anyOf":[{"type":"string","enum":["strict","balanced","permissive"]},{"type":"null"}],"title":"Policy Preset","description":"Policy preset: strict | balanced | permissive. Maps to require_directional/strict_buffer_policy/include_lower_levels."}},"type":"object","title":"PlannerOptions","description":"Planner knobs. All outward positions in options are 1-based in requests."},"PlasmidInsert":{"properties":{"sequence":{"type":"string","title":"Sequence","description":"Raw GenBank/FASTA text or plain sequence (A/T/C/G)"},"feature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feature","description":"Optional named feature to extract"},"range":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Range","description":"Optional feature range with 1-based start/end"},"format_hint":{"anyOf":[{"type":"string","enum":["genbank","fasta"]},{"type":"null"}],"title":"Format Hint","description":"Optional format hint for 'sequence' to avoid mis-detection"}},"type":"object","required":["sequence"],"title":"PlasmidInsert","description":"Plasmid-format insert. All outward positions are 1-based in requests."},"PostSummary":{"properties":{"final_strategies_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Strategies Count"},"final_levels":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Final Levels"},"rejections_sample":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Rejections Sample"}},"type":"object","title":"PostSummary"},"Primer":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"sequence":{"type":"string","title":"Sequence"},"start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End"},"strand":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Strand"},"forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Forward"},"tm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tm"},"gc_content":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gc Content"},"notes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Notes","default":[]},"status":{"$ref":"#/components/schemas/FeatureStatus","default":"ok"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"mismatches":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Mismatches"},"off_targets":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Off Targets"}},"type":"object","required":["sequence"],"title":"Primer"},"PrimerAddSpec":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"sequence":{"type":"string","title":"Sequence"},"start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End"},"strand":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Strand"},"forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Forward"},"tm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tm"},"gc_content":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gc Content"},"notes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Notes"},"locate":{"type":"string","title":"Locate","default":"auto"},"anchor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anchor"},"offset_bp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset Bp"}},"type":"object","required":["sequence"],"title":"PrimerAddSpec"},"PrimerDesignCriteria":{"properties":{"length":{"additionalProperties":{"type":"integer"},"type":"object","title":"Length","default":{"min":18,"max":25}},"tm":{"additionalProperties":{"type":"number"},"type":"object","title":"Tm","default":{"min":55,"max":65}},"gc_content":{"additionalProperties":{"type":"number"},"type":"object","title":"Gc Content","default":{"min":40,"max":60}}},"type":"object","title":"PrimerDesignCriteria"},"PrimerDesignRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__restriction_cloning__models__core__SequenceData"},"target_region":{"$ref":"#/components/schemas/TargetRegion"},"criteria":{"$ref":"#/components/schemas/PrimerDesignCriteria"}},"type":"object","required":["sequence_data","target_region","criteria"],"title":"PrimerDesignRequest"},"PrimerDesignResult":{"properties":{"forward_primer":{"$ref":"#/components/schemas/PrimerDetail","description":"Forward primer details"},"reverse_primer":{"$ref":"#/components/schemas/PrimerDetail","description":"Reverse primer details"},"tm_forward":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tm Forward","description":"Forward primer melting temperature"},"tm_reverse":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tm Reverse","description":"Reverse primer melting temperature"},"gc_content_forward":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Gc Content Forward","description":"Forward primer GC content"},"gc_content_reverse":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Gc Content Reverse","description":"Reverse primer GC content"},"primer_dimer_analysis":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Primer Dimer Analysis","description":"Primer-dimer analysis results"},"clamp_sequence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Clamp Sequence","description":"Clamp sequence added to primers"}},"type":"object","required":["forward_primer","reverse_primer"],"title":"PrimerDesignResult","description":"Structured primer design result for Level 4 strategies"},"PrimerDetail":{"properties":{"sequence":{"type":"string","title":"Sequence","description":"Primer sequence"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Primer name"},"length":{"type":"integer","title":"Length","description":"Primer length in nucleotides"},"tm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tm","description":"Melting temperature in Celsius"},"gc_content":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Gc Content","description":"GC content as fraction"},"clamp_sequence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Clamp Sequence","description":"Clamp sequence if applicable"},"restriction_site":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Restriction Site","description":"Restriction site if applicable"},"qc_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Qc Score","description":"Quality control score"},"notes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Notes","description":"Additional notes"}},"type":"object","required":["sequence","length"],"title":"PrimerDetail","description":"Model for detailed primer information"},"PrimerQCRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__models__core__SequenceData"},"primers":{"items":{"$ref":"#/components/schemas/Primer"},"type":"array","title":"Primers"}},"type":"object","required":["sequence_data","primers"],"title":"PrimerQCRequest"},"PrimerRemoveSpec":{"properties":{"ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ids"},"names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Names"},"sequences":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sequences"}},"type":"object","title":"PrimerRemoveSpec"},"PrimerValidationRequest":{"properties":{"forward_primer":{"type":"string","title":"Forward Primer"},"reverse_primer":{"type":"string","title":"Reverse Primer"},"target_tm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Tm","default":60},"max_homopolymer":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Homopolymer","default":4}},"type":"object","required":["forward_primer","reverse_primer"],"title":"PrimerValidationRequest"},"PrimerValidationResult":{"properties":{"forward_tm":{"type":"number","title":"Forward Tm"},"reverse_tm":{"type":"number","title":"Reverse Tm"},"forward_gc":{"type":"number","title":"Forward Gc"},"reverse_gc":{"type":"number","title":"Reverse Gc"},"tm_delta":{"type":"number","title":"Tm Delta"},"warnings":{"items":{"$ref":"#/components/schemas/PrimerWarning"},"type":"array","title":"Warnings"}},"type":"object","required":["forward_tm","reverse_tm","forward_gc","reverse_gc","tm_delta","warnings"],"title":"PrimerValidationResult"},"PrimerWarning":{"properties":{"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"}},"type":"object","required":["code","message"],"title":"PrimerWarning"},"ProtocolStep":{"properties":{"reagents":{"items":{"$ref":"#/components/schemas/ReagentDetail"},"type":"array","title":"Reagents","description":"Reagents with amounts/conditions"},"steps":{"items":{"$ref":"#/components/schemas/ProtocolSubStep"},"type":"array","title":"Steps","description":"Step-by-step protocol operations"},"verification":{"$ref":"#/components/schemas/VerificationStep","description":"Verification checks (PCR/digest)"},"notes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Notes","description":"Additional notes and caveats"}},"type":"object","required":["reagents","steps","verification"],"title":"ProtocolStep"},"ProtocolSubStep":{"properties":{"description":{"type":"string","title":"Description","description":"Step description"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration","description":"Duration (e.g., '1 hour', '30 minutes')"},"temperature_c":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Temperature C","description":"Temperature in Celsius"},"reagents_used":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Reagents Used","description":"Reagents used in this step"},"equipment":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Equipment","description":"Equipment needed"},"notes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Notes","description":"Additional notes"}},"type":"object","required":["description"],"title":"ProtocolSubStep","description":"Model for detailed protocol sub-steps"},"QueryType":{"type":"string","enum":["entity_lookup","relationship","semantic_search","pathway","general"],"title":"QueryType","description":"Types of queries supported by GraphRAG"},"ReagentDetail":{"properties":{"name":{"type":"string","title":"Name","description":"Reagent name"},"amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Amount","description":"Amount (e.g., '100 ng', '2 μL')"},"concentration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Concentration","description":"Concentration (e.g., '10 U/μL', '10x')"},"stock_solution_vol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stock Solution Vol","description":"Stock solution volume"},"final_reaction_vol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Final Reaction Vol","description":"Final reaction volume"},"vendor_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Product Id","description":"Vendor product ID"},"storage_temp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Storage Temp","description":"Storage temperature"},"notes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Notes","description":"Additional notes"}},"type":"object","required":["name"],"title":"ReagentDetail","description":"Model for detailed reagent information"},"ReanchorRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__models__core__SequenceData"},"target_sequence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Sequence"},"target_position":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target Position"},"anchor_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anchor Type","default":"auto"}},"type":"object","required":["sequence_data"],"title":"ReanchorRequest"},"RestrictionAnalysisRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__restriction_cloning__models__core__SequenceData"},"enzyme_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enzyme Names"},"include_blunt":{"type":"boolean","title":"Include Blunt","default":true},"include_sticky":{"type":"boolean","title":"Include Sticky","default":true},"min_fragment_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Fragment Size"},"max_fragment_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Fragment Size"}},"type":"object","required":["sequence_data"],"title":"RestrictionAnalysisRequest"},"RestrictionAnalysisResult":{"properties":{"sites":{"items":{"$ref":"#/components/schemas/RestrictionSite"},"type":"array","title":"Sites"},"enzyme_count":{"type":"integer","title":"Enzyme Count"},"total_sites":{"type":"integer","title":"Total Sites"}},"type":"object","required":["sites","enzyme_count","total_sites"],"title":"RestrictionAnalysisResult"},"RestrictionEnzyme":{"properties":{"name":{"type":"string","title":"Name"},"site":{"type":"string","title":"Site"},"forward_cut":{"type":"integer","title":"Forward Cut"},"reverse_cut":{"type":"integer","title":"Reverse Cut"}},"type":"object","required":["name","site","forward_cut","reverse_cut"],"title":"RestrictionEnzyme"},"RestrictionMapEntry":{"properties":{"enzyme":{"type":"string","title":"Enzyme"},"sites":{"items":{"type":"integer"},"type":"array","title":"Sites"},"overhang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overhang"}},"type":"object","required":["enzyme","sites"],"title":"RestrictionMapEntry"},"RestrictionSite":{"properties":{"enzyme_name":{"type":"string","title":"Enzyme Name"},"position":{"type":"integer","title":"Position"},"recognition_sequence":{"type":"string","title":"Recognition Sequence"},"cut_position":{"type":"integer","title":"Cut Position"},"overhang_type":{"type":"string","title":"Overhang Type"},"enzyme_info":{"$ref":"#/components/schemas/EnzymeInfo"}},"type":"object","required":["enzyme_name","position","recognition_sequence","cut_position","overhang_type","enzyme_info"],"title":"RestrictionSite"},"SequenceAnalysisResult":{"properties":{"sequence":{"type":"string","title":"Sequence"},"length":{"type":"integer","title":"Length"},"gc_content":{"type":"number","title":"Gc Content"},"melting_temperature":{"type":"number","title":"Melting Temperature"},"molecular_weight":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Molecular Weight"}},"type":"object","required":["sequence","length","gc_content","melting_temperature"],"title":"SequenceAnalysisResult"},"SequenceContextReport":{"properties":{"gc_content":{"type":"number","title":"Gc Content"},"gc_skew":{"type":"number","title":"Gc Skew"},"repeats":{"items":{"type":"string"},"type":"array","title":"Repeats"},"homopolymers":{"items":{"type":"string"},"type":"array","title":"Homopolymers"},"predicted_hairpins":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Predicted Hairpins"},"g_quadruplex_candidates":{"items":{"type":"string"},"type":"array","title":"G Quadruplex Candidates"},"kozak_context_ok":{"type":"boolean","title":"Kozak Context Ok"},"cpg_islands":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Cpg Islands"},"flags":{"items":{"type":"string"},"type":"array","title":"Flags"},"mitigations":{"items":{"type":"string"},"type":"array","title":"Mitigations"},"restriction_analysis":{"additionalProperties":true,"type":"object","title":"Restriction Analysis"}},"type":"object","required":["gc_content","gc_skew","repeats","homopolymers","predicted_hairpins","g_quadruplex_candidates","kozak_context_ok","cpg_islands","flags","mitigations"],"title":"SequenceContextReport"},"SequenceDataPayload":{"properties":{"sequence":{"type":"string","title":"Sequence"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"circular":{"type":"boolean","title":"Circular","default":false},"annotations":{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array","title":"Annotations","default":[]},"primers":{"items":{"$ref":"#/components/schemas/Primer"},"type":"array","title":"Primers","default":[]},"translations":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Translations"},"length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Length"}},"type":"object","required":["sequence"],"title":"SequenceDataPayload"},"SequenceEditsApplyRequest":{"properties":{"sequence":{"type":"string","title":"Sequence"},"circular":{"type":"boolean","title":"Circular","default":false},"features":{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array","title":"Features","default":[]},"primers":{"items":{"$ref":"#/components/schemas/Primer"},"type":"array","title":"Primers","default":[]},"edits":{"items":{"$ref":"#/components/schemas/EditOperation"},"type":"array","title":"Edits"}},"type":"object","required":["sequence","edits"],"title":"SequenceEditsApplyRequest"},"SequenceEditsApplyResult":{"properties":{"sequence":{"type":"string","title":"Sequence"},"features":{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array","title":"Features"},"primers":{"items":{"$ref":"#/components/schemas/Primer"},"type":"array","title":"Primers"},"translations":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Translations"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings","default":[]}},"type":"object","required":["sequence","features","primers"],"title":"SequenceEditsApplyResult"},"SequenceEditsPreviewRequest":{"properties":{"sequence":{"type":"string","title":"Sequence"},"circular":{"type":"boolean","title":"Circular","default":false},"features":{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array","title":"Features","default":[]},"primers":{"items":{"$ref":"#/components/schemas/Primer"},"type":"array","title":"Primers","default":[]},"edits":{"items":{"$ref":"#/components/schemas/EditOperation"},"type":"array","title":"Edits"}},"type":"object","required":["sequence","edits"],"title":"SequenceEditsPreviewRequest"},"SequenceEditsPreviewResult":{"properties":{"new_length":{"type":"integer","title":"New Length"},"features":{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array","title":"Features"},"primers":{"items":{"$ref":"#/components/schemas/Primer"},"type":"array","title":"Primers"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings","default":[]}},"type":"object","required":["new_length","features","primers"],"title":"SequenceEditsPreviewResult"},"SequenceInsert":{"properties":{"fasta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fasta","description":"FASTA text including header line"},"sequence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sequence","description":"Plain sequence (A/T/C/G)"},"annotations":{"anyOf":[{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array"},{"type":"null"}],"title":"Annotations","description":"Optional features with 1-based positions"},"format_hint":{"anyOf":[{"type":"string","enum":["genbank","fasta"]},{"type":"null"}],"title":"Format Hint","description":"Optional input format hint"}},"type":"object","title":"SequenceInsert","description":"Direct sequence insert. All outward positions are 1-based in requests."},"SequenceSelectionRequest":{"properties":{"sequence":{"type":"string","title":"Sequence"},"start":{"type":"integer","minimum":1,"title":"Start","description":"1-based start position"},"end":{"type":"integer","minimum":1,"title":"End","description":"1-based end position"},"circular":{"type":"boolean","title":"Circular","default":false}},"type":"object","required":["sequence","start","end"],"title":"SequenceSelectionRequest"},"SequentialPlan":{"properties":{"required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Required"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"steps":{"anyOf":[{"items":{"$ref":"#/components/schemas/SequentialPlanStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"additionalProperties":true,"type":"object","title":"SequentialPlan"},"SequentialPlanEntry":{"properties":{"strategy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategy"},"plan":{"anyOf":[{"$ref":"#/components/schemas/SequentialPlan"},{"type":"null"}]}},"type":"object","title":"SequentialPlanEntry"},"SequentialPlanStep":{"properties":{"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"},"enzyme":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enzyme"},"buffer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buffer"},"temperature_c":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Temperature C"},"cleanup":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cleanup"}},"type":"object","title":"SequentialPlanStep"},"SmartDeleteOptions":{"properties":{"clip_overlapping":{"type":"boolean","title":"Clip Overlapping","default":true},"reanchor":{"type":"boolean","title":"Reanchor","default":true}},"type":"object","title":"SmartDeleteOptions"},"SmartDeleteRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__models__core__SequenceData"},"start":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Start","description":"1-based start position"},"end":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"End","description":"1-based end position"},"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Name"},"target_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Type"},"options":{"$ref":"#/components/schemas/SmartDeleteOptions","default":{"clip_overlapping":true,"reanchor":true}},"primers_add":{"anyOf":[{"items":{"$ref":"#/components/schemas/PrimerAddSpec"},"type":"array"},{"type":"null"}],"title":"Primers Add","default":[]},"primers_remove":{"anyOf":[{"$ref":"#/components/schemas/PrimerRemoveSpec"},{"type":"null"}]}},"type":"object","required":["sequence_data"],"title":"SmartDeleteRequest"},"SmartEditOptions":{"properties":{"operation_type":{"type":"string","title":"Operation Type","default":"edit"},"insert_sequence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insert Sequence"},"replacement_sequence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replacement Sequence"},"start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End"},"position":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Position"},"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Name"},"target_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Type"},"placement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Placement"},"offset_bp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset Bp","default":0},"add_annotation":{"type":"boolean","title":"Add Annotation","default":true},"annotation_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annotation Name"},"annotation_type":{"type":"string","title":"Annotation Type","default":"misc_feature"},"annotation_strand":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Annotation Strand"},"annotation_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annotation Color"},"maintain_frame":{"type":"boolean","title":"Maintain Frame","default":true},"auto_translate":{"type":"boolean","title":"Auto Translate","default":true},"auto_orient":{"type":"boolean","title":"Auto Orient","default":false},"drop_overlapping":{"type":"boolean","title":"Drop Overlapping","default":true},"min_overlap_fraction_to_drop":{"type":"number","title":"Min Overlap Fraction To Drop","default":0.6},"clip_overlapping":{"type":"boolean","title":"Clip Overlapping","default":true},"reanchor":{"type":"boolean","title":"Reanchor","default":true},"primer_validation":{"type":"boolean","title":"Primer Validation","default":true},"primer_tm_target":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Primer Tm Target","default":60},"primer_gc_range":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Primer Gc Range"},"validate_sequence":{"type":"boolean","title":"Validate Sequence","default":true},"check_restriction_sites":{"type":"boolean","title":"Check Restriction Sites","default":false},"generate_diff":{"type":"boolean","title":"Generate Diff","default":true}},"type":"object","title":"SmartEditOptions","description":"Unified options for all smart sequence editing operations"},"SmartInsertOptions":{"properties":{"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Name"},"target_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Type"},"placement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Placement"},"offset_bp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset Bp","default":0},"position":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Position","description":"1-based absolute position - use sparingly, prefer semantic placement"},"position_ref":{"type":"string","title":"Position Ref","default":"current"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"},"source_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"},"remove_source_after":{"type":"boolean","title":"Remove Source After","default":true},"add_annotation":{"type":"boolean","title":"Add Annotation","default":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"feature_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feature Type"},"strand":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Strand"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"maintain_frame":{"type":"boolean","title":"Maintain Frame","default":true},"auto_translate":{"type":"boolean","title":"Auto Translate","default":true},"auto_orient":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Orient","default":false},"policy_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Policy Mode"},"drop_overlapping":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Drop Overlapping","default":true},"min_overlap_fraction_to_drop":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Overlap Fraction To Drop","default":0.6}},"type":"object","title":"SmartInsertOptions"},"SmartInsertRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__models__core__SequenceData"},"insert_sequence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insert Sequence"},"options":{"$ref":"#/components/schemas/SmartInsertOptions","default":{"offset_bp":0,"position_ref":"current","remove_source_after":true,"add_annotation":true,"maintain_frame":true,"auto_translate":true,"auto_orient":false,"drop_overlapping":true,"min_overlap_fraction_to_drop":0.6}},"primers_add":{"anyOf":[{"items":{"$ref":"#/components/schemas/PrimerAddSpec"},"type":"array"},{"type":"null"}],"title":"Primers Add","default":[]},"primers_remove":{"anyOf":[{"$ref":"#/components/schemas/PrimerRemoveSpec"},{"type":"null"}]}},"type":"object","required":["sequence_data"],"title":"SmartInsertRequest"},"SmartReplaceOptions":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"feature_type":{"type":"string","title":"Feature Type","default":"misc_feature"},"strand":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Strand"},"add_annotation":{"type":"boolean","title":"Add Annotation","default":true},"maintain_frame":{"type":"boolean","title":"Maintain Frame","default":true},"auto_translate":{"type":"boolean","title":"Auto Translate","default":true},"auto_orient":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Orient","default":false},"drop_overlapping":{"type":"boolean","title":"Drop Overlapping","default":true},"min_overlap_fraction_to_drop":{"type":"number","title":"Min Overlap Fraction To Drop","default":0.6},"old_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Name"}},"type":"object","title":"SmartReplaceOptions"},"SmartReplaceRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__models__core__SequenceData"},"start":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Start","description":"1-based start position"},"end":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"End","description":"1-based end position"},"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Name"},"target_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Type"},"replacement_sequence":{"type":"string","title":"Replacement Sequence"},"options":{"$ref":"#/components/schemas/SmartReplaceOptions","default":{"feature_type":"misc_feature","add_annotation":true,"maintain_frame":true,"auto_translate":true,"auto_orient":false,"drop_overlapping":true,"min_overlap_fraction_to_drop":0.6}},"primers_add":{"anyOf":[{"items":{"$ref":"#/components/schemas/PrimerAddSpec"},"type":"array"},{"type":"null"}],"title":"Primers Add","default":[]},"primers_remove":{"anyOf":[{"$ref":"#/components/schemas/PrimerRemoveSpec"},{"type":"null"}]}},"type":"object","required":["sequence_data","replacement_sequence"],"title":"SmartReplaceRequest"},"StarActivity":{"properties":{"risk":{"type":"string","title":"Risk","description":"Risk level: none, low, medium, high","default":"none"},"conditions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conditions","description":"Conditions that promote star activity"},"frequency":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Frequency","description":"Frequency under standard conditions"}},"type":"object","title":"StarActivity","description":"Model for enzyme star activity properties"},"StrategyCard":{"properties":{"id":{"type":"string","title":"Id"},"strategy_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategy Id","description":"Stable identifier used in llm_ranking ordered_ids (typically strategy name)"},"title":{"type":"string","title":"Title"},"level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Level"},"enzymes":{"items":{"$ref":"#/components/schemas/StrategyCardEnzyme"},"type":"array","title":"Enzymes"},"badges":{"items":{"type":"string"},"type":"array","title":"Badges"},"rationale":{"$ref":"#/components/schemas/StrategyCardRationale"},"caveats":{"items":{"type":"string"},"type":"array","title":"Caveats"},"verification_expectations":{"anyOf":[{"$ref":"#/components/schemas/VerificationExpectations"},{"type":"null"}]},"protocol_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protocol Id"},"calculations":{"anyOf":[{"$ref":"#/components/schemas/BenchCalculations"},{"type":"null"}]},"scores":{"$ref":"#/components/schemas/StrategyCardScores"},"selected_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected By"}},"type":"object","required":["id","title","scores"],"title":"StrategyCard"},"StrategyCardEnzyme":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"overhang_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overhang Type"},"overhang_sequence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overhang Sequence"},"buffer_groups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Buffer Groups"},"optimal_temp_c":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Optimal Temp C"}},"type":"object","title":"StrategyCardEnzyme"},"StrategyCardRationale":{"properties":{"deterministic":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Deterministic"},"llm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm"}},"type":"object","title":"StrategyCardRationale"},"StrategyCardScores":{"properties":{"deterministic":{"type":"number","title":"Deterministic"},"blended":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Blended"}},"type":"object","required":["deterministic"],"title":"StrategyCardScores"},"TargetRegion":{"properties":{"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"},"length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Length"}},"type":"object","required":["start","end"],"title":"TargetRegion"},"Transformation":{"properties":{"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"conditions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conditions"},"competent_cells":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Competent Cells"},"recovery_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recovery Min"}},"additionalProperties":true,"type":"object","title":"Transformation"},"TranslationAnnotation":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"},"forward":{"type":"boolean","title":"Forward"},"direction":{"type":"integer","title":"Direction"},"color":{"type":"string","title":"Color"},"notes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["id","name","type","start","end","forward","direction","color"],"title":"TranslationAnnotation"},"TranslationData":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"},"direction":{"type":"integer","title":"Direction"},"sequence":{"type":"string","title":"Sequence"},"type":{"type":"string","title":"Type"}},"type":"object","required":["id","name","start","end","direction","sequence","type"],"title":"TranslationData"},"TranslationRequest":{"properties":{"sequence":{"type":"string","title":"Sequence"},"circular":{"type":"boolean","title":"Circular","default":false},"min_orf_length":{"type":"integer","title":"Min Orf Length","default":300},"include_reading_frames":{"type":"boolean","title":"Include Reading Frames","default":false}},"type":"object","required":["sequence"],"title":"TranslationRequest"},"TranslationResult":{"properties":{"orfs":{"items":{"$ref":"#/components/schemas/ORFData"},"type":"array","title":"Orfs"},"annotations":{"items":{"$ref":"#/components/schemas/TranslationAnnotation"},"type":"array","title":"Annotations"},"translations":{"items":{"$ref":"#/components/schemas/TranslationData"},"type":"array","title":"Translations"},"summary":{"additionalProperties":true,"type":"object","title":"Summary"}},"type":"object","required":["orfs","annotations","translations","summary"],"title":"TranslationResult"},"UnifiedSequenceEditRequest":{"properties":{"sequence_data":{"$ref":"#/components/schemas/app__models__core__SequenceData"},"edits":{"items":{"$ref":"#/components/schemas/EditOperation"},"type":"array","title":"Edits","default":[]},"primers_add":{"items":{"$ref":"#/components/schemas/PrimerAddSpec"},"type":"array","title":"Primers Add","default":[]},"primers_remove":{"anyOf":[{"$ref":"#/components/schemas/PrimerRemoveSpec"},{"type":"null"}]},"options":{"anyOf":[{"$ref":"#/components/schemas/SmartEditOptions"},{"type":"null"}]},"operation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operation Id"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["sequence_data"],"title":"UnifiedSequenceEditRequest","description":"Unified request model for all sequence editing operations"},"UnifiedSequenceEditResponse":{"properties":{"sequence_data":{"$ref":"#/components/schemas/SequenceDataPayload"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings","default":[]},"operation_type":{"type":"string","title":"Operation Type"},"operation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operation Id"},"processing_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Processing Time"},"success":{"type":"boolean","title":"Success","default":true},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Diff"},"changes_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Changes Summary"},"validation_results":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Validation Results"},"primer_validation":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Primer Validation"}},"type":"object","required":["sequence_data","operation_type"],"title":"UnifiedSequenceEditResponse","description":"Unified response model for all sequence editing operations"},"UserContextResponse":{"properties":{"user_id":{"type":"string","title":"User Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"is_authenticated":{"type":"boolean","title":"Is Authenticated"},"user_type":{"type":"string","title":"User Type"},"permissions":{"items":{"type":"string"},"type":"array","title":"Permissions"}},"type":"object","required":["user_id","is_authenticated","user_type","permissions"],"title":"UserContextResponse","description":"Response model for user context information"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VectorSummary":{"properties":{"length":{"type":"integer","title":"Length"},"circular":{"type":"boolean","title":"Circular"},"mcs_regions":{"items":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"array","title":"Mcs Regions"},"restriction_map":{"items":{"$ref":"#/components/schemas/RestrictionMapEntry"},"type":"array","title":"Restriction Map"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["length","circular"],"title":"VectorSummary"},"VerificationExpectations":{"properties":{"colony_pcr_orientation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Colony Pcr Orientation"},"diagnostic_digest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Diagnostic Digest"}},"additionalProperties":true,"type":"object","title":"VerificationExpectations"},"VerificationStep":{"properties":{"colony_pcr":{"anyOf":[{"items":{"$ref":"#/components/schemas/ColonyPCRItem"},"type":"array"},{"type":"null"}],"title":"Colony Pcr"},"diagnostic_digest":{"anyOf":[{"items":{"$ref":"#/components/schemas/DiagnosticDigestItem"},"type":"array"},{"type":"null"}],"title":"Diagnostic Digest"}},"type":"object","title":"VerificationStep"},"VisualMap":{"properties":{"vector_features":{"anyOf":[{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array"},{"type":"null"}],"title":"Vector Features","description":"Vector features for rendering"},"mcs_regions":{"anyOf":[{"items":{"$ref":"#/components/schemas/app__restriction_cloning__models__restriction_planning__EnhancedRestrictionPlanResult__Region"},"type":"array"},{"type":"null"}],"title":"Mcs Regions","description":"Multiple cloning site regions"},"cut_sites":{"anyOf":[{"items":{"$ref":"#/components/schemas/CutSitesPerEnzyme"},"type":"array"},{"type":"null"}],"title":"Cut Sites","description":"Per-enzyme cut sites on vector"},"insert_internal_cuts":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Insert Internal Cuts","description":"Insert internal cut sites"}},"additionalProperties":true,"type":"object","title":"VisualMap"},"app__models__core__SequenceData":{"properties":{"sequence":{"type":"string","title":"Sequence","description":"Raw DNA sequence (A/T/C/G)"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Human-readable name","default":"Sequence"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional sequence description","default":""},"circular":{"type":"boolean","title":"Circular","description":"True if sequence is circular","default":false},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"Optional explicit length; computed from sequence when omitted"},"primers":{"anyOf":[{"items":{"$ref":"#/components/schemas/Primer"},"type":"array"},{"type":"null"}],"title":"Primers","description":"Primer features with 1-based coordinates in API requests/responses"},"annotations":{"anyOf":[{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array"},{"type":"null"}],"title":"Annotations","description":"Features with 1-based start/end in API requests/responses"},"translations":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Translations","description":"Optional translation features (1-based positions)"}},"type":"object","required":["sequence"],"title":"SequenceData"},"app__restriction_cloning__models__core__SequenceData":{"properties":{"sequence":{"type":"string","title":"Sequence"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","default":"Sequence"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","default":""},"circular":{"type":"boolean","title":"Circular","default":false},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"},"primers":{"anyOf":[{"items":{"$ref":"#/components/schemas/Primer"},"type":"array"},{"type":"null"}],"title":"Primers","default":[]},"annotations":{"anyOf":[{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array"},{"type":"null"}],"title":"Annotations","default":[]},"translations":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Translations","default":[]}},"type":"object","required":["sequence"],"title":"SequenceData"},"app__restriction_cloning__models__restriction_planning__EnhancedRestrictionPlanResult__Region":{"properties":{"start":{"type":"integer","title":"Start","description":"Region start (1-based)"},"end":{"type":"integer","title":"End","description":"Region end (1-based)"}},"type":"object","required":["start","end"],"title":"Region"},"app__restriction_cloning__models__restriction_planning__Region":{"properties":{"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"}},"type":"object","required":["start","end"],"title":"Region"},"RateLimitError":{"type":"object","properties":{"error":{"type":"string","example":"rate_limited"},"message":{"type":"string","example":"Rate limit exceeded"},"retryAfter":{"type":"string","format":"date-time"},"limitType":{"type":"string","enum":["daily","burst","generic"]}},"required":["error","message"]}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}},"servers":[{"url":"https://api.geneloop.bio","description":"GeneLoop Bio API"}]}