"""Filter prepared external observations by actual publication availability."""
from datetime import datetime
import json

def instant(value):
    t=datetime.fromisoformat(value.replace('Z','+00:00'))
    if t.tzinfo is None:raise ValueError('timezone required')
    return t

def available_observations(path,decision_at):
    cutoff=instant(decision_at);result=[]
    with open(path,encoding='utf-8') as stream:
        for line in stream:
            if not line.strip():continue
            row=json.loads(line)
            if not isinstance(row,dict) or not isinstance(row.get('url'),str) or not row['url'].startswith('https://'):
                raise ValueError('source URL required')
            published=instant(row['available_at'])
            if published<=cutoff:result.append(row)
    return result
