filter() expects you to use the raw PostgREST syntax for the filter values.
.filter("id", operator: "in", value: "(5,6,7)")  // Use `()` for `in` filter
.filter("arraycol", operator: "cs", value: #"{"a","b"}"#)  // Use `cs` for `contains()`, `{}` for array values
try await supabase
  .from("instruments")
  .select()
  .filter("name", operator: "in", value: #"("cello","guzheng")"#)
try await supabase
  .from("orchestral_sections")
  .select(
    """
      name,
      instruments!inner (
        name
      )
    """
  )
  .filter("instruments.name", operator: "eq", value: "flute")